vue中路由的嵌套思路
时间: 2023-11-09 10:54:22 浏览: 86
在Vue中通过vue-router实现路由嵌套
5星 · 资源好评率100%
Vue中的路由嵌套是指在一个路由下面再嵌套一个或多个路由,这样可以实现更灵活的页面切换和组件复用。下面介绍一下Vue中路由嵌套的思路:
1. 定义根路由
在Vue中,路由的定义是通过Vue Router实现的。首先需要在Vue实例中引入Vue Router,并定义一个根路由,例如:
```javascript
import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from './components/Home.vue'
Vue.use(VueRouter)
const routes = [
{ path: '/', component: Home }
]
const router = new VueRouter({
routes
})
new Vue({
router
}).$mount('#app')
```
上面的代码中,定义了一个根路由,它的路径为'/',对应的组件是Home。可以看到,路由的定义是通过routes数组来实现的,其中每个元素表示一个路由,包括路径和对应的组件。
2. 在根路由下定义子路由
在根路由下定义子路由,需要在根路由的组件中添加一个<router-view>标签,用来展示子路由对应的组件。例如:
```html
<template>
<div>
<h1>Home</h1>
<router-view></router-view>
</div>
</template>
```
这个组件中添加了一个<router-view>标签,用来展示子路由对应的组件。然后,在根路由的routes数组中添加子路由的定义,例如:
```javascript
const routes = [
{ path: '/', component: Home, children: [
{ path: 'about', component: About },
{ path: 'contact', component: Contact }
] }
]
```
上面的代码中,定义了两个子路由,分别是/about和/contact,它们的对应的组件分别是About和Contact。可以看到,子路由的定义是通过children属性来实现的。
3. 在子路由对应的组件中定义子路由
在子路由对应的组件中,也可以定义子路由。例如,在About组件中定义一个子路由:
```html
<template>
<div>
<h1>About</h1>
<router-view></router-view>
</div>
</template>
<script>
export default {
name: 'About',
mounted () {
console.log('About mounted.')
},
children: [
{ path: 'history', component: History },
{ path: 'team', component: Team }
]
}
</script>
```
上面的代码中,定义了两个子路由,分别是/history和/team,它们的对应的组件分别是History和Team。可以看到,子路由的定义是通过children属性来实现的。
4. 访问路由
访问路由的方式和普通路由是一样的,只需要在路径后面添加对应的子路径即可。例如,访问/about/history这个路由,需要使用以下代码:
```html
<router-link to="/about/history">History</router-link>
```
上面的代码中,使用了<router-link>标签来生成一个链接,指向/about/history这个路由。当用户点击这个链接时,Vue会自动切换到对应的组件。
以上就是Vue中路由嵌套的思路,通过定义根路由和子路由,可以实现更灵活的页面切换和组件复用。
阅读全文