在视图中,我需要生成以下类:
有没有更好的方法使用
<div class="comp comp--lock comp--red">Foo</div>
lock
和 red
基于状态,颜色的可能取值如下:
comp--red
、comp--yellow
、comp--blue
等其他可能的颜色。
迄今为止,我一直在使用基于数据进行类名拼接的计算方法:
getCompClassName(){
return `comp ${this.isLock ? 'comp--lock' : ''} comp--${this.color}`
}
查看Vuejs文档,我发现有一个v-bind:class
可以更好地解决这个问题,但我遇到的问题是如何解决color
插值,因为我需要声明所有可能的颜色。
data: {
classObject: {
'comp--lock': this.isLock,
'comp--red': this.color === 'red',
'comp--blue': this.color === 'blue',
'comp--yellow': this.color === 'yellow'
}
}
有没有更好的方法使用
v-bind:class
来解决这个问题,而不需要列出所有可能性,或者我应该使用计算属性来插入类名?