动态切换class绑定style的三种写法

在vue官方文档里学到的,动态切换class绑定style的三种写法

	<!DOCTYPE html>
	<html lang="en">
	<head>
	    <meta charset="UTF-8">
	    <meta name="viewport" content="width=device-width, initial-scale=1.0">
	    <meta http-equiv="X-UA-Compatible" content="ie=edge">
	    <title>Document</title>
	    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
	    <style>
	    .demo1_a {
	       
	        background-color: black;
	    }
	    .demo1_b {
	       
	        background-color: pink;
	    }
	    .demo2_a {
	       
	        background-color: red;
	    }
	    .demo2_b {
	      
	        background-color: green;
	    }
	    .demo3_a {
	        background-color: blue;
	    }
	    .demo3_b {
	        background-color: yellow;
	    }
	    </style>
	</head>
	<body>
	    <!-- 动态切换class -->
	    <!-- 表示这个class是否存在取决于数据属性(isA/isB)的true -->
	
	    <!-- 写法一 -->
	    <div id="demo1">
	        <div 
	        class="static"
	        v-bind:class="{'demo1_a' : isA,'demo2_b' : isB}">demo1
	        </div>
	    </div>
	    <!-- 写法二 (不必内联定义在模块中)-->
	    <div id="demo2">
	        <div v-bind:class="classObject">demo2</div>
	    </div>
	    <!-- 写法三 (computed属性) -->
	    <div id="demo3">
	        <div v-bind:class="classObject">demo3</div>
	    </div>
	
	    <script>
	        var vm = new Vue({
	            el:'#demo1',
	            data:{
	                isA:false,
	                isB:true
	            }
	        })
	        var vm = new Vue({
	            el:'#demo2',
	            data:{
	                classObject: {
	                    'demo2_a':true,
	                    'demo2_b':false
	                }
	            }
	        })
	        var vm = new Vue({
	            el:'#demo3',
	            data() {//与上边data写法不同 可以替换
	                return {
	                    'isA':false,
	                    'isB':true
	                }
	            },
	            computed:{
	                classObject: function() {
	                    return {
	                        'demo3_a': this.isA,
	                        'demo3_b': this.isB
	                    }
	                }
	            }
	        })
	    </script>
	       
	    
	</body>
	
	</html>
```js

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值