记录一次跳转路由时,导航栏选中消失的神秘事件。css
请看这张图,一开始路由跳转到这页面时,导航栏是有高亮的,可是在刷新的时候,高亮就消失了;
总所周知,客户是一种能够从鸡蛋里面挑出骨头的神秘生物。网络
<Menu v-show="!collapsed" width="auto" @on-select="handleSelect"> <template v-for="item in menuList"> <menu-submenu v-if="item.children" :key="`menu_${item.name}`" :name="item.name" :parent="item" ></menu-submenu> <menu-item v-else :key="`menu_${item.name}`" :name="item.name"> <Icon :type="item.icon" /> {{ item.title }} </menu-item> </template> </Menu>
props: { collapsed: { type: Boolean, default: false }, menuList: { type: Array, default: () => [] } }, methods: { handleSelect(name) { this.$router.push({ name: `${name}` }); } }
上述代码是我封装到公共组件的导航栏代码,主要是判断是否有多级菜单(这不是咱们重点)。iview
遇到问题就要解决,不懂的状况下,只好上网找答案了,可是网络上的答案五花八门,看的你眼花缭乱。
最后仍是靠本身摸索了this
name
值,固然也有些页面不须要name
值,跳转的方式是this.$router.push()
;active-name
,这个就好像css里面的active,能够选中指定的菜单<Menu>
绑定当前要指定的菜单详细代码:spa
//template <Menu v-show="!collapsed" width="auto" @on-select="handleSelect" :active-name="isShow"> // XXXX </Menu> //script data() { return { isShow: "test-group" }; }, props: { collapsed: { type: Boolean, default: false }, menuList: { type: Array, default: () => [] } }, mounted() { this.isShow = this.$route.name; }, methods: { handleSelect(name) { this.isShow = name; this.$router.push({ name: `${name}` }); } }
这样就能够解决上述的问题了,其中有些地方说不清的地方请见谅,只是记录本身开发时粗心的一面,菜鸟一枚,不喜勿喷!3d