Events 如何在苗条中安装组件之前获取数据?

Events 如何在苗条中安装组件之前获取数据?,events,components,lifecycle,mount,svelte-3,Events,Components,Lifecycle,Mount,Svelte 3,与onMount不同,SvelteJS中没有beforeMount生命周期事件。那么,在挂载之前,我们如何获取页面所依赖的数据呢onMountfetchs会产生小故障。可以说,我可以在if条件中包装依赖的DOM。但我认为这不是正确的解决方案。与Sapper非常相似,它有一个预加载功能,可以在安装之前加载页面相关的数据。在SvelteJS中,除了这种(Sapper的预加载)行为,还有什么替代方法?您可以将获取代码放在标记的正下方 块包含创建组件实例时运行的JavaScript 还有带有标记的con

onMount
不同,SvelteJS中没有
beforeMount
生命周期事件。那么,在挂载之前,我们如何获取页面所依赖的数据呢
onMount
fetchs会产生小故障。可以说,我可以在if条件中包装依赖的DOM。但我认为这不是正确的解决方案。与Sapper非常相似,它有一个
预加载
功能,可以在安装之前加载页面相关的数据。在SvelteJS中,除了这种(Sapper的
预加载
)行为,还有什么替代方法?

您可以将
获取
代码放在
标记的正下方

块包含创建组件实例时运行的JavaScript

还有带有
标记的
context=“module”
属性。它

在模块首次求值时运行一次,而不是针对每个组件实例


请参见此处的Noob,以回答您的子问题:苗条的前端不是唯一的吗?这意味着没有SSR支持,因此没有使用第一个用户请求预加载数据的选项

因为,您没有任何服务器可以预加载您的数据,并为用户提供预打包的前端(苗条的页面)数据。因此,您需要sapper提供一种功能,服务器可以通过第一个用户请求获取数据,填充前端并将其发送给用户。。这样,用户在收到服务器的第一个响应时就会收到包含数据的轻巧页面

由于您只使用svelte,用户需要更频繁地联系您的服务器。。首先,它获取前端,然后前端从后端获取数据。此外,它不利于SEO,因为机器人不会等待后续的服务器响应。因此,当机器人分析“空白”页面时,您的页面不会被正确地分析,因为还没有装载数据,在处理响应之前,机器人会移动到下一个页面

如果我错了,请纠正我;)

我相信上述答案是正确的: 1.在脚本标记中创建空变量 2.添加下面的onMount调用,并将数据从服务器提取到上面声明的变量 3.检查var是否为空并显示加载按钮 4.如果var不为空,则显示用户内容 6.利润


注:对于任何误解或糟糕的英语,我深表歉意:)

您需要创建另一个组件,在数据准备好之前不会呈现该组件


从“/Post.svelte”导入Post;
常量url=https://jsonplaceholder.typicode.com/posts/1';
const promise=fetch(url).then(response=>response.json());
{#等待承诺然后等待数据}
{/等待}


根据具体情况,您可以使用支持数据加载的路由器,如sapper路由器。

很高兴您回复了。但这不能替代Sapper的
preload()