选用技术栈vue3+typescripy+element-plus ui+router 4
编写通用动态路由菜单
目标:根据路由配置信息,自动生成菜单内容。实现更通用、更自动的菜单配置。
通用路由菜单组件实现步骤
1.提取通用路由文件
2.菜单组件读取路由,动态渲染菜单项
3.绑定跳转事件
4.同步路由的更新到菜单项高亮
5.按需补充更多能力
(1)提取通用路由文件
把 router/index.ts 中的路由变量定义为单独的文件 routes.ts,代码如下:
export const routes: Array<RouteRecordRaw> = [
{
path: '/shouye',
name: '首页',
component: Shouye,
},
{
path: '/keichengxuexi',
name: '课程学习',
component: Courselearning,
},
}
然后在 router/index.ts 中引入 routes.
(2)菜单组件读取路由,动态渲染菜单项
<script setup lang= ts >
import { routes }from "../router/routes";
</script>
模板中根据路由数组渲染菜单:
<el-menu-item v-for="item in routes" :key="item.path">
{
{ item.name }}
</el-menu-item>