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

 

posted @   最爱小虾  阅读(24770)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2017-01-17 css从中挖去一个圆
2017-01-17 calc
2017-01-17 垂直居中
点击右上角即可分享
微信分享提示