解决element-ui中el-menu组件作为vue-router模式在刷新页面后default-active属性与当前路由页面不一致问题的方法...
时间: 2023-12-28 12:03:24 浏览: 165
这个问题的解决方法是,在el-menu组件上绑定一个v-model属性,然后在路由发生变化时,通过监听$route对象的变化,对v-model属性进行赋值,使得el-menu组件的default-active属性值与当前路由对应的菜单项保持一致。具体实现方法如下:
1. 在el-menu组件上绑定v-model属性,将其值设为当前路由的path属性值。
```
<el-menu v-model="activeIndex" default-active="home" router>
<el-menu-item index="/">首页</el-menu-item>
<el-menu-item index="/about">关于我们</el-menu-item>
<el-menu-item index="/contact">联系我们</el-menu-item>
<el-menu-item index="/news">新闻动态</el-menu-item>
</el-menu>
```
2. 在Vue实例中,监听$route对象的变化,对v-model属性进行赋值。
```
new Vue({
router,
data() {
return {
activeIndex: this.$route.path
}
},
watch: {
$route(to, from) {
this.activeIndex = to.path
}
}
}).$mount('#app')
```
这样就可以解决el-menu组件作为vue-router模式在刷新页面后default-active属性与当前路由页面不一致的问题。
阅读全文