vue3动态路由二级菜单
时间: 2023-09-12 18:04:05 浏览: 136
在 Vue 3 中实现动态路由和二级菜单可以通过以下步骤:
1. 定义路由配置文件:创建一个 `routes.js` 文件来定义你的路由配置。这个文件应该包含一个数组,每个对象表示一个路由项,包括路径、组件和子路由等信息。例如:
```javascript
// routes.js
import Home from '@/views/Home.vue'
import Products from '@/views/Products.vue'
import ProductDetails from '@/views/ProductDetails.vue'
const routes = [
{
path: '/',
name: 'Home',
component: Home
},
{
path: '/products',
name: 'Products',
component: Products,
children: [
{
path: ':id',
name: 'ProductDetails',
component: ProductDetails
}
]
}
]
export default routes
```
2. 创建路由实例:在主文件(例如 `main.js`)中创建一个 Vue Router 实例,并将路由配置文件作为参数传递给它。然后挂载到 Vue 应用中。例如:
```javascript
// main.js
import { createApp } from 'vue'
import { createRouter, createWebHistory } from 'vue-router'
import routes from './routes'
const router = createRouter({
history: createWebHistory(),
routes
})
createApp(App).use(router).mount('#app')
```
3. 创建组件:根据路由配置中定义的组件路径,创建对应的组件文件。例如 `Home.vue`、`Products.vue` 和 `ProductDetails.vue`。
4. 使用动态路由和二级菜单:在需要展示动态路由和二级菜单的组件中,可以使用 `<router-link>` 组件和 `<router-view>` 组件。例如,在 `Products.vue` 组件中,你可以使用 `<router-link>` 来生成二级菜单的链接,并使用 `<router-view>` 来展示子路由对应的组件。
```html
<!-- Products.vue -->
<template>
<div>
<h1>Products</h1>
<ul>
<li v-for="product in products" :key="product.id">
<router-link :to="{ name: 'ProductDetails', params: { id: product.id }}">
{{ product.name }}
</router-link>
</li>
</ul>
<router-view></router-view>
</div>
</template>
<script>
export default {
data() {
return {
products: [
{ id: 1, name: 'Product 1' },
{ id: 2, name: 'Product 2' },
{ id: 3, name: 'Product 3' }
]
}
}
}
</script>
```
这样就可以实现在 Vue 3 中使用动态路由和二级菜单了。根据上面的配置,当访问 `/products` 路径时,将会显示 `Products.vue` 组件,并在页面上展示产品列表。当点击某个产品时,将会根据子路由配置加载对应的 `ProductDetails.vue` 组件,并在页面上展示产品详情。
阅读全文