antd-vue a-menu菜单绑定路由相关问题

antd-vue a-menu菜单绑定路由相关问题
tips: 路由绑定、菜单跳转、网页后退高亮显示
1. 问题描述
使用antd-vue 的 a-布局和a-menu菜单做一个侧边栏菜单,加入vuex配置侧边栏点击事件,实现点击菜单改变路由展示中间部分内容的功能
但是出现了问题:
2. 解决方法
对路由变化进行判断/修改 的push与方法
借助a-menu 的属性::绑定路由地址,就能实现随着路由产生变化
3. 代码
****** 重复点击报错解决:******
方法1:对路径进行判断
methods: {handelClick(item) {//判断点击路径与点击菜单路径是否不同//有效避免重复替换相同路径if (item.key !== this.$route.path) {this.$router.push(item.key)console.log(this.$route.path)console.log(item)}}}
方法2:在main.js中添加代码
import VueRouter from 'vue-router'Vue.use(VueRouter)const originalReplace = VueRouter.prototype.replace;VueRouter.prototype.replace = function replace(location) {return originalReplace.call(this, location).catch(err => err);};const originalPush = VueRouter.prototype.pushVueRouter.prototype.push = function push(location) {return originalPush.call(this, location).catch(err => err)}
****** 浏览器刷新/后退 菜单高亮区域:******
完整代码:
注册登录忘记密码 (collapsed = !collapsed)"/>登录注册模块#components-layout-demo-custom-trigger {height: 100%;}#components-layout-demo-custom-trigger .trigger {font-size: 18px;line-height: 64px;padding: 0 24px;cursor: pointer;transition: color 0.3s;}#components-layout-demo-custom-trigger .trigger:hover {color: #1890ff;}#components-layout-demo-custom-trigger .logo {height: 32px;background: rgba(255, 255, 255, 0.2);margin: 16px;}
关键代码:

antd-vue a-menu菜单绑定路由相关问题

文章插图
注册/***在a-menu中设置的:selectedKeys="key",绑定当前的路由"[$route.path]"*所以在a-menu-item的key需要做出改变,改为路径*同时也方便了后续处理点击事件传入的路径*/
顺便说下菜单的点击事件:
上面好像说了
演示结果:
【antd-vue a-menu菜单绑定路由相关问题】最后,有说明不清楚的地方欢迎评论指出