Skip to main content
Svelte 基础
介绍
响应式
属性
逻辑
事件
绑定
类和样式
Actions
过渡动画
Svelte 进阶
高级响应性
复用内容
Motion
高级绑定
高级过渡效果
Context API
特殊元素
<script module>
后续步骤
SvelteKit 基础
介绍
路由
加载数据
请求头和 Cookie
共享模块
表单
API 路由
$app/state
错误和重定向
SvelteKit 进阶
钩子函数
页面选项
链接选项
高级路由
高级加载
环境变量
结论

因为 SvelteKit 使用基于目录的路由,所以可以很容易地将模块和组件放在使用它们的路由旁边。一个好的经验法则是”将代码放在靠近使用它的地方”。

有时,代码会在多个地方使用。当这种情况发生时,有一个可以存放它们的地方很有用,这样所有路由都可以访问它们,而不需要在导入时使用 ../../../../ 这样的前缀。在 SvelteKit 中,这个地方就是 src/lib 目录。src 中的任何模块都可以通过 $lib 别名访问这个目录中的任何内容。

在这个练习中,两个 +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>
<script lang="ts">
	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>
<script lang="ts">
	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>