- .aa{
-
- }
- .bb{
-
- }
- .cc{
-
- }
- <div id="box">
- <div :class="classobj">动态切换class属性div>
- div>
- <script>
- var vm = new Vue({
- el:"#box",
- data:{
- classobj:{
- aa:true,
- bb:true,
- cc:false
- }
- }
- })
- script>
结果:

- <div id="box">
- <div :class="classarr">动态切换class属性div>
- div>
- <script>
- var vm = new Vue({
- el:"#box",
- data:{
- classarr:["aa"]
- },
- })
- script>
结果:

动态新增class属性:
vm.classobj.dd = true//vue2不支持


解决办法:
vue2解决方案:使用Vue.set(对象,属性,true)进行新增class属性;
Vue.set(vm.classobj,"dd",true)
结果:

vue3:支持动态增加属性的拦截;
vm.classarr.push("cc")//新增class属性
结果:

数组方法不拦截:
