vue Element動態設置el-menu導航當前選中項


1,npm install vuex --save

2,在src下新建vuex文件夾,新建store.js文件;

store.js

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

const state = {
    count: 0,
    adminleftnavnum:"/"  //管理后台左側導航
}
const mutations = {
    increment (state) {
        state.count++
    }  
}
// const actions = {...}
//注冊Store
export default new Vuex.Store({
    state,
    mutations
});

3,在main.js下,創建和掛載根實例

new Vue({
  el: '#app',
  router,
  store,
  template: '<App/>',
  components: { App }
})

4,在components--common--side_nav.vue下(導航所在的組件)

<el-menu :default-active="navselected" :active="navselected" @select="selectItems" class="el-menu-admin" router>

添加變量和改變方法

    export default {
        components:{
            'el-menu':Menu,
            'el-submenu':Submenu,
            'el-menu-item':MenuItem,
            'el-menu-item-group':MenuItemGroup
        },
        data () {
            return {
                navselected:"/",
                openends:['1','2','3','4','5','6']//默認menu展開
            }
        },
        mounted(){
            console.log(this.navselected)   
        },
        methods:{
            getNavType(){
                this.navselected=this.$store.state.adminleftnavnum;
                //store.state.adminleftnavnum里值變化的時候,設置navselected
            },
            selectItems(index){
                console.log(index)
                this.$store.state.adminleftnavnum=index;
               //按鈕選中之后設置當前的index為store里的值。
            }
        },
        watch: {
            // 監測store.state
            '$store.state.adminleftnavnum': 'getNavType'
        }
    }

 

5,在其他組件改變(src--components--page--home--home.vue)

this.$store.state.adminleftnavnum的值即可

export default {
        created () {
            this.$store.state.adminleftnavnum="2-2"; //設置左側導航2-2 active
        }
    }

 

預覽地址:https://besswang.github.io/element-admin/dist/index.html#/

參考地址:http://yaohuitao.com/?p=341

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM