<el-menu :default-active="$route.path" class="el-menu-vertical-demo" background-color="#31506F" text-color="#fff" active-text-color="#FFA800" router :unique-opened="uniqueopened">
重要的是綁定:default-active="$route.path",而後再將index值變成本身的路由地址。vue
<el-menu-item index="/main/task"> <i class="el-icon-circle-check"></i> 站點管理 </el-menu-item>
這樣導航欄就自動隨路由地址高亮啦~~this
可是若是你有子路由,那進入子路由旁邊的導航欄是不會亮的,由於index值仍是你父路由的地址,因此咱們須要改變index值或者把$route.path匹配的路徑變成父路由的地址,我選擇第二種,這樣咱們就須要路由鉤子了!spa
首先將:default-active="$route.path"變成:default-active="activeindex"綁定一個變量activeindexcode
<script> export default{ data(){ return{ uniqueopened:true, activeIndex:'/main/system' //默認激活路由地址 } }, methods:{ defaultIdex(){ this.activeIndex = this.$route.path; } }, created(){ //vue生命週期建立時 this.defaultIdex() }, beforeUpdate(){ this.activeIndex = this.$route.matched[2].path //重要的點,this.$route.matched[2].path 就是父路由的地址,使用的是路由鉤子。 }, update(){ //vue生命週期改變時 this.defaultIdex() }, } </script>
個人理解也是很淺薄,願有好辦法的博友能夠告知。三扣~Thanks♪(・ω・)ノrouter