主题
路由系统
路由渲染
pages
目录下的 .vue
文件会自动注册为路由组件。
另外两个常用的路由组件可类比于 Vue Router
:
- 页面路由:
<NuxtPage>
-><RouterView>
bash
pages/
user/index.vue // user/
user/[id].vue // user/:id
...
路由导航
声明式导航
- 页面跳转:
<NuxtLink>
-><RouterLink>
路由跳转属于服务端还是客户端?
- 当通过
<NuxtLink>
直接跳转时,此时为客户端渲染。 - 当直接在浏览器地址栏输入路由地址并访问时,此时为服务端渲染。
编程式导航
ts
navigateTo('/about')
中间件
可以看作“导航守卫”
middleware 目录中
使用中间件:
ts
definePageMeta({
middleware: [
function (to, from) {
// Custom inline middleware
},
'auth',
],
})
命名为 xxx.global.ts
的文件会被自动注册为全局中间件。
bash
-| middleware/
---| analytics.global.ts
---| setup.global.ts
---| auth.ts
执行顺序为:
- analytics.global.ts
- setup.global.ts
- Custom inline middleware
- auth.ts