vue3动态路由导航菜单
时间: 2023-08-16 10:14:52 浏览: 156
在 Vue 3 中,可以使用动态路由来实现导航菜单。以下是一个示例:
首先,在路由配置中定义动态路由。可以使用一个数组来存储菜单项的信息,然后通过遍历数组生成对应的路由配置。
```javascript
// 路由配置文件
import { createRouter, createWebHistory } from 'vue-router'
const routes = [
{
path: '/',
name: 'Home',
component: () => import('@/views/Home.vue')
},
{
path: '/about',
name: 'About',
component: () => import('@/views/About.vue')
},
// 动态路由
{
path: '/menu/:id',
name: 'Menu',
component: () => import('@/views/Menu.vue')
}
]
const router = createRouter({
history: createWebHistory(),
routes
})
export default router
```
然后,在菜单组件中使用动态路由导航。可以使用 `router-link` 组件来生成导航链接,通过传递不同的 `to` 属性来实现不同的导航。
```vue
<template>
<div>
<ul>
<li v-for="item in menuItems" :key="item.id">
<router-link :to="`/menu/${item.id}`">{{ item.name }}</router-link>
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
menuItems: [
{ id: 1, name: 'Menu 1' },
{ id: 2, name: 'Menu 2' },
{ id: 3, name: 'Menu 3' }
]
}
}
}
</script>
```
最后,在 Menu 组件中可以通过 `$route.params` 来获取动态路由参数,并根据参数的不同展示不同的内容。
```vue
<template>
<div>
<h2>Menu {{ $route.params.id }}</h2>
<!-- 其他内容 -->
</div>
</template>
```
这样就可以实现基于动态路由的导航菜单了。当点击菜单项时,会根据动态路由参数加载对应的组件。希望这个示例能对你有所帮助!
阅读全文