element-ui中点击菜单,改变当前菜单背景颜色
需求: vue项目中,点击左侧菜单,tags页显示当前打开的菜单,并且高亮显示当前菜单
实现效果:
实现代码:在vuex里面定义tags存放所有打开的菜单,和当前打开的索引curtagsIndex:,通过遍历tags,看是否等于当前索引
1.在store的index.js文件里面定义 tags 和 curtagsIndex
const store = new Vuex.Store({
modules: {
tags:[],
curTagsIndex:"-1",
},
mutations: {
SET_CURTAGS: (state, index) => {
state.curTagsIndex = index
},
}
})
<div class="tag_list" v-for="(tag,index) in tags" @click="jump(tag)" :class="{ active:curTagsIndex == index}">
<span>{{tag.name}}</span>
<i class="el-icon-close" @click="close(tag)"></i>
</div>
<script>
import { mapState, mapGetters,mapMutations } from "vuex";
export default{
computed: {
...mapGetters(["tags","curTagsIndex"]),
},
methods:{
...mapMutations(["SET_CURTAGS"]),
jump(val){
this.$router.push(val.path);
this.tags.forEach((item,index)=>{
if(item.name==val.name){
this.$store.commit("SET_CURTAGS",index);
}
})
},
},
}
</script>
<style lang="less" scoped>
.active{
background:#f1f4f5;
}
</style>
Vue项目中实现菜单点击高亮显示
本文介绍了一个Vue项目中如何实现点击左侧菜单后,tags页显示当前菜单并高亮显示。主要通过Vuex来管理状态,存储所有打开的菜单tags和当前选中的curTagsIndex。在模板中使用v-for遍历tags,并根据curTagsIndex设置active类来改变背景颜色。同时,展示了相关的方法和样式来完成这一功能。
4069

被折叠的 条评论
为什么被折叠?



