我们在 之前 学过,Svelte 的存储(stores)是一个用来放置数据的、不属于任何一个组件的地方。
SvelteKit 通过 $app/stores
模块创建了三个只读存储:page
、navigating
和 updated
。其中最常用的就是 page
,用来提供有关当前页面的信息:
url
— 当前页面的 URLparams
— 当前页面的 参数route
— 一个拥有id
属性(property)的代表当前路由的对象status
— 当前页面的 HTTP 状态码error
— 当前页面的错误对象,如果有的话(你会在 之后的 练习 中学习更多关于错误处理的内容)data
— 当前页面的数据,是所有load
函数的集合form
— 从 表单操作 中返回的数据
就跟其他的 store 一样,你可以在组件中通过在名称前添加 $
标志来引用其值。比如说,我们可以通过 $page.url.pathname
来获取当前路径:
src/routes/+layout.svelte
<script>
import { page } from '$app/stores';
</script>
<nav>
<a href="/" aria-current={$page.url.pathname === '/'}>
home
</a>
<a href="/about" aria-current={$page.url.pathname === '/about'}>
about
</a>
</nav>
<slot></slot>