nuxt路由的简单用法及动态路由验证
一、nuxt推荐用<nuxt-link>进行路由跳转
例如:
<template> <nuxt-link to="/">首页</nuxt-link> </template>
二、nuxt根据页面结构自动生成路由
假设 pages
的目录结构如下:
1 pages/ 2 --| user/ 3 -----| index.vue 4 -----| one.vue 5 --| index.vue
那么,Nuxt.js 自动生成的路由配置如下:
router: {
routes: [
{
name: 'index',
path: '/',
component: 'pages/index.vue'
},
{
name: 'user',
path: '/user',
component: 'pages/user/index.vue'
},
{
name: 'user-one',
path: '/user/one',
component: 'pages/user/one.vue'
}
]
}
三、动态路由
动态路由:即一些带有参数的页面
在 Nuxt.js 里面定义带参数的动态路由,需要创建对应的以下划线作为前缀的 Vue 文件 或 目录。
目录结构:
pages/
--| _slug/
-----| comments.vue
-----| index.vue
--| users/
-----| _id.vue
--| index.vue
Nuxt.js 生成对应的路由配置表为:
router: {
routes: [
{
name: 'index',
path: '/',
component: 'pages/index.vue'
},
{
name: 'users-id',
path: '/users/:id?',
component: 'pages/users/_id.vue'
},
{
name: 'slug',
path: '/:slug',
component: 'pages/_slug/index.vue'
},
{
name: 'slug-comments',
path: '/:slug/comments',
component: 'pages/_slug/comments.vue'
}
]
}
四、路由参数效验
Nuxt.js 可以让你在动态路由组件中定义参数校验方法。
举个例子: pages/users/_id.vue
export default {
validate ({ params }) {
// 必须是number类型
return /^\d+$/.test(params.id)
}
}
如果校验方法返回的值不为 true
或Promise
中resolve 解析为false
或抛出Error , Nuxt.js 将自动加载显示 404 错误页面或 500 错误页面。
详细:https://zh.nuxtjs.org/api/pages-validate/
联系作者:
VX:Mm_Lewis