element中el-menu的动态变化问题

    技术2022-07-11  98

    <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect"> <el-menu-item index="1">处理中心</el-menu-item> <el-submenu index="2"> <template slot="title">我的工作台</template> <el-menu-item index="2-1">选项1</el-menu-item> <el-menu-item index="2-2">选项2</el-menu-item> <el-menu-item index="2-3">选项3</el-menu-item> <el-submenu index="2-4"> <template slot="title">选项4</template> <el-menu-item index="2-4-1">选项1</el-menu-item> <el-menu-item index="2-4-2">选项2</el-menu-item> <el-menu-item index="2-4-3">选项3</el-menu-item> </el-submenu> </el-submenu> <el-menu-item index="3" disabled>消息中心</el-menu-item> <el-menu-item index="4"><a href="https://www.ele.me" rel="external nofollow" target="_blank">订单管理</a></el-menu-item> </el-menu> <script> export default { data() { return { activeIndex: '1' }; }, methods: { handleSelect(key, keyPath) { console.log(key, keyPath); } } } </script>

    注意属性:

    default-active:当前激活菜单的 index

    router:是否使用 vue-router 的模式,启用该模式会在激活导航时以 index 作为 path 进行路由跳转

    index:唯一标志,,类型为字符串,在每一个el-menu-item组件上都有一个编号,给default-active标记

    使用菜单栏进行路由跳转:

    <el-menu :default-active="$router.path" router mode="horizontal"> <el-menu-item v-for="(item,i) in navList" :key="i" :index="item.name"> {{ item.navItem }} </el-menu-item> </el-menu>

    数据:

    data() { return { navList:[ {name:'/findProject',navItem:'发现项目'}, {name:'/communityActivity',navItem:'社区动态'}, {name:'/publishProject',navItem:'发布项目'}, {name:'/personalCenter',navItem:'个人中心'}, {name:'/manageCenter',navItem:'管理员中心'}, ] } }

    router.js

    配置路由

    使用菜单栏进行路由跳转有几个注意点:

    在el-menu加上router

    index必须绑定路由的path,参考上面的例子,’/'不能少

    default-active设为当前路由(this.$route.path),这样在路由变化的时候,对应的menu-item才会高亮

    当this.$route.path等于el-menu-item标签中的index属性值时则该item为当前项,对应的menu-item才会高亮。

    Processed: 0.013, SQL: 9