vue3 路由怎么使用,当有二级路由嵌套的时候
时间: 2024-09-24 14:16:30 浏览: 62
在 Vue3 中,使用路由管理通常会配合 Vuex 或者 Vue Router 来实现。特别是当遇到二级路由嵌套时,可以按照以下步骤设置:
1. **安装依赖**:
首先你需要安装 Vue Router 和 Vuex (如果未使用),可以用命令行工具安装:
```
npm install vue-router vuex
```
2. **创建路由表**:
在 `src/router` 目录下创建 `index.js` 文件,定义你的路由配置,如一级路由和二级路由:
```javascript
import Vue from 'vue';
import Router from 'vue-router';
import Home from '@/views/Home.vue';
import ChildRoute from '@/views/ChildRoute.vue'; // 二级路由
const routes = [
{
path: '/',
name: 'Home',
component: Home,
children: [
{
path: 'child-route',
name: 'ChildRoute',
component: ChildRoute
}
]
}
];
export default new Router({
mode: 'history',
base: process.env.BASE_URL,
routes
});
```
这里我们创建了一个名为 "Home" 的一级路由,它有一个子路由 "child-route"。
3. **导航守卫**:
你可以使用导航守卫(如 `beforeEach`)来处理权限检查、状态管理和跳转等操作:
```javascript
import store from '@/store'; // 引入Vuex store
export default new Router({
// ... 路由配置
beforeEach((to, from, next) => {
if (store.state.user.authenticated) {
next(); // 已登录,直接通过
} else {
next('/login'); // 如果未登录,则重定向到登录页面
}
})
});
```
4. **Vue组件内导航**:
在 Vue 组件内部使用 `<router-link>` 或者 `this.$router.push` 来切换路由:
```html
<router-link to="/home/child-route">进入子路由</router-link>
```
5. **在模板中显示路由内容**:
使用 `v-slot` 或者动态组件来显示当前路由的内容:
```html
<template>
<div>
<router-view></router-view> <!-- 显示当前层级的路由 -->
<router-view name="childRoute" /> <!-- 显示特定名称的子路由,此处为 "ChildRoute" -->
</div>
</template>
```
6. **使用组件懒加载**:
对于性能优化,可以使用异步加载(lazy)属性来延迟加载二级路由对应的组件。
记得在 App.vue 或者其他合适的入口文件导入和使用这个路由实例。
阅读全文