跳至主要内容

由于 SvelteKit 使用基于目录的路由,因此可以轻松地将模块和组件放置在其使用的路由旁边。一个好的经验法则是“将代码放在靠近其使用位置的地方”。

有时,代码在多个地方使用。发生这种情况时,拥有一个可以被所有路由访问的位置很有用,而无需使用 `../../../../` 为导入添加前缀。在 SvelteKit 中,这个位置是 `src/lib` 目录。此目录中的任何内容都可以通过 `$lib` 别名被 `src` 中的任何模块访问。

此练习中的两个 `+page.svelte` 文件都导入了 `src/lib/message.js`。但是,如果你导航到 `/a/deeply/nested/route`,应用程序会中断,因为我们添加的前缀不正确。将其更新为使用 `$lib/message.js` 代替。

src/routes/a/deeply/nested/route/+page
<script>
	import { message } from '$lib/message.js';
</script>

<h1>a deeply nested route</h1>
<p>{message}</p>

对 `src/routes/+page.svelte` 执行相同的操作。

src/routes/+page
<script>
	import { message } from '$lib/message.js';
</script>

<h1>home</h1>
<p>{message}</p>

在 GitHub 上编辑此页面

1
2
3
4
5
6
<script>
	import { message } from '../lib/message.js';
</script>
 
<h1>home</h1>
<p>{message}</p>