面试题答案
一键面试利用路由加载器进行数据预取
- 相关函数:在SvelteKit中,使用
load
函数来进行数据预取。load
函数在服务器端运行(或在支持SSR的环境下运行),用于获取页面所需的数据。 - 文件结构:
load
函数通常定义在路由相关的文件中。在SvelteKit项目中,路由是基于文件系统的,例如在src/routes
目录下的每个文件或目录对应一个路由。对于页面级别的数据预取,load
函数一般定义在页面组件(.svelte
文件)的同一级目录下的+page.js
文件中。
简单场景下数据预取的代码实现
假设我们有一个简单的博客应用,要在文章列表页面展示文章标题。
- 文件结构
src/routes/articles/+page.js
:
export async function load() {
const response = await fetch('https://example.com/api/articles');
const articles = await response.json();
return {
articles
};
}
- `src/routes/articles/+page.svelte`:
<script context="module">
export async function load() {
const response = await fetch('https://example.com/api/articles');
const articles = await response.json();
return {
articles
};
}
</script>
<script>
export let data;
</script>
<ul>
{#each data.articles as article}
<li>{article.title}</li>
{/each}
</ul>
在上述例子中,+page.js
中的load
函数通过fetch
从API获取文章数据,然后返回的数据会通过data
对象传递给+page.svelte
组件,在组件中进行展示。