应指定路由工作模式 history 和配置的路由信息 routes
const router = createRouter({
history: createWebHistory(),
routes,
})
为了使用路由,还要引入相应的包;完整路由创建如下
// 引入路由包
import {createRouter, createWebHistory} from 'vue-router'
// 引入路由组件Home;其它组件可以按需导入
import Home from '@/pages/Home'
// 创建路由实例
const router = createRouter({
// 路由模式:history、hash;默认是 history;建议使用 hash
history: createWebHistory(import.meta.env.BASE_URL),
// 配置路由
routes : [
{
path: '/',
name: 'home',
component: Home
},
{
path: '/home',
redirect: '/'
},
{
path: '/work',
name: 'work',
component: () => import('../components/sub_view/Work.vue'),
redirect: '/work/html', //使用完整路由
children:[
{
path: 'html', //省略父级路由
name: "html",
component: () => import('../components/sub_view/Html.vue'),
},
{
path: 'css3', //省略父级路由
name: "css3",
component: () => import('../components/sub_view/Css.vue'),
},
{
path: '/work/js', //可以使用完整路由;建议所有子路由配置保持一致
name: "js",
component: () => import('../components/sub_view/Js.vue'),
}
]
},
{
path: '/team',
name: 'team',
component: () => import('../components/sub_view/Team.vue')
},
{
path: '/about',
name: 'about',
component: () => import('../components/sub_view/About.vue')
},
{
path: '/:pathMatch(.*)*',
name: 'not-found',
component: () => import('../views/NotFound.vue')
}
]
})
//导出路由
export default router
404 路由也可以针对某个特定的路由
也可以使用内置函数生成 html,避免额外创建组件
如果针对根路由和特定路由的404处理都存在,特定路由应该在根路由之前,否则无法正常匹配
import {h} from 'vue'
//...
{
path: '/goods:pathMatch(.*)*',
name: 'goods-not-found',
component: h('p', {style: 'color: red'}, 'goods 404 Not Found')
},
{
path: '/:pathMatch(.*)*',
name: 'not-found',
component: () => import('../views/NotFound.vue')
}