您现在的位置是:网站首页> 编程资料编程资料
关于antd-vue a-menu菜单绑定路由的相关问题_vue.js_
2023-05-24
335人已围观
简介 关于antd-vue a-menu菜单绑定路由的相关问题_vue.js_
tips: 路由绑定、菜单跳转、网页后退高亮显示
1. 问题描述
使用antd-vue 的 a-layout布局和a-menu菜单做一个侧边栏菜单,加入vuex配置侧边栏点击事件,实现点击菜单改变路由展示中间部分内容的功能
但是出现了问题:
- 重复点击路由报错
- 浏览器刷新/后退 菜单高亮区域没有根据路由的变化产生变化
2. 解决方法
- 对路由变化进行判断/修改router 的push与replace方法
- 借助a-menu 的属性::selectedKeys绑定路由地址,就能实现随着路由产生变化
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.push VueRouter.prototype.push = function push(location) { return originalPush.call(this, location).catch(err => err) } ****** 浏览器刷新/后退 菜单高亮区域:******完整代码:
注册 登录 忘记密码 (collapsed = !collapsed)" /> 登录注册模块
关键代码:
/** *在a-menu中设置的:selectedKeys="key",绑定当前的路由"[$route.path]" *所以在a-menu-item的key需要做出改变,改为路径 *同时也方便了后续处理点击事件传入的路径 */ 注册
顺便说下菜单的点击事件:
上面好像说了
演示结果:



以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
您可能感兴趣的文章:
相关内容
- vue点击按钮实现让页面的某一个元素全屏展示_vue.js_
- JavaScript移动端常用事件之touch触摸事件详解_javascript技巧_
- Vue获取DOM元素并修改属性的方法_vue.js_
- ant-design-vue导航菜单a-menu的使用解读_vue.js_
- vue3 hook自动导入原理及使用_vue.js_
- ES6 class类实现继承实例详解_javascript技巧_
- vue动态生成新表单并且添加验证校验规则方式_vue.js_
- React组件化的一些额外知识点补充_React_
- 使用KrpanoToolJS在浏览器切图的实例详解_javascript技巧_
- vue鼠标hover(悬停)改变background-color移入变色问题_vue.js_
