Nuxt2项目中怎么通过URL路径中的参数 默认打开对应的el-menu
时间: 2023-12-14 09:37:30 浏览: 136
可以通过使用 Nuxt.js 的动态路由和组件来实现此功能。具体步骤如下:
1. 在 Nuxt.js 中定义动态路由,如下所示:
```javascript
// nuxt.config.js
export default {
...
generate: {
routes: [
'/menu/1',
'/menu/2',
'/menu/3'
]
},
router: {
extendRoutes(routes, resolve) {
routes.push({
path: '/menu/:id',
component: resolve(__dirname, 'pages/menu/[id].vue')
})
}
},
...
}
```
上述代码中,我们定义了一个动态路由 `/menu/:id`,其中 `:id` 表示参数。我们还使用 `generate` 属性为此路由生成静态页面。
2. 创建对应的页面组件,如下所示:
```html
<!-- pages/menu/_id.vue -->
<template>
<div>
<el-menu :default-active="`/menu/${id}`">
<el-menu-item index="/menu/1">菜单1</el-menu-item>
<el-menu-item index="/menu/2">菜单2</el-menu-item>
<el-menu-item index="/menu/3">菜单3</el-menu-item>
</el-menu>
</div>
</template>
<script>
export default {
computed: {
id() {
return this.$route.params.id
}
}
}
</script>
```
上述代码中,我们使用了 `computed` 计算属性来获取路由参数 `id`,然后通过 `:default-active` 属性将对应的菜单项设置为默认选中状态。
3. 在页面中使用动态路由链接,如下所示:
```html
<!-- pages/index.vue -->
<template>
<div>
<nuxt-link to="/menu/1">菜单1</nuxt-link>
<nuxt-link to="/menu/2">菜单2</nuxt-link>
<nuxt-link to="/menu/3">菜单3</nuxt-link>
</div>
</template>
```
上述代码中,我们使用 `nuxt-link` 组件来创建动态路由链接,点击链接将会跳转到对应的页面,并默认选中对应的菜单项。
以上就是在 Nuxt.js 项目中通过 URL 路径中的参数默认打开对应的 el-menu 的方法。
阅读全文