动态绑定多个样式,且不互斥。
<tr>
<td v-for="(itme,index) in Store.Alldata" :key="itme">
<div :class="{active:bb==index,curr:cc==index}" @click='res(itme,index)'>
<span>{{itme.S}}span>
<span>{{itme.Z}}span>
<span >{{itme.N}}span>
<span>{{itme.C}}span>
动态绑定两个样式,这时候从span标签后面一直到整个组件结束,后面的代码全是白色的,正常运行,但是后面再写代码就没有提示了,总觉得有bug。
如果只是单一的绑定一个样式,比如:
bb==index?'active':''
这样代码是正常的高亮,再写代码也正常。
要怎么绑定两个属性,代码看起来才是正常的高亮样式,或者说如何更好的绑定两个样式属性?
:class="[bb==index?'active':'',cc==index?'vv':'']"
这样是可以的
或者
:class="bb==index&&cc==index?['active','vv']:bb==index?'active':cc==index?'vv':''"
定义一个方法也行
哦我试了一下 没问题 你的代码
都在教你改代码,可是你的代码没有问题,有问题的是插件,应该是vetur的问题,可以到他们的issues上提一提你的问题,找一找有没有类似问题。
暂时的可以像上面说的修改写法,或者重启下编辑器
:class=“[{active:bb==index},{curr:cc==index}]”
也可以将样式的class这样写:把逻辑写在js中肯定不会出现你上面的问题,而且js中的代码更加灵活。
<body>
<div id="vue-container">
<div :class="classes(1)">
</div>
</div>
<script>
let vue = new Vue({
el: "#vue-container",
data: {
bb: '1',
cc: '1'
},
computed: {
classes(){
return function(index){
return {
'active': this.bb == index,
'curr': this.cc == index,
}
}
}
},
methods:{
},
});
</script>
</body>
方法一
:class="[a:"a1",b:"b1"]"
a变量ture显示 a1
方法二
this.classList = ["a1","a2"]
:class="this.classList.join(" ")"
【013_末晨曦Vue技术_Class和Style绑定之绑定内联样式-哔哩哔哩】 https://b23.tv/yiyofJn
:class=“[{active:bb==index},{curr:cc==index}]”
:class="[bb==index?'active':'',cc==index?'vv':'']"