vue.js

数据双向绑定

作用

数据双向绑定

原理

通过数据劫持结合发布订阅者的模式和Object.defineproprety()来劫持各个属性的setter和getter,如果数据有变动就发布消息给订阅者触发监听。

vue样式使用

数组

//css代码:
     .box {
            width: 200px;
            height: 200px;
            background-color: cornflowerblue;
        }

        .red {
            color: gold;
        }
        .fs40 {
            font-size: 40px;
        }
//html代码:
    div id="app">
        <div :class="class2">今天下雨了</div>
        <button @click="change">change</button>
    </div>
//vue代码:    
    <script src="./vue-2.4.0.js"></script>
    <script>
      let vm = new Vue({
        el: '#app',
        data: {
            class2: ['box', 'red'],
        },
        methods: {
            change() {
                this.class2.push('fs40')
            }
        }
      })
    </script>

三目表达式

//css代码:
     .box {
            width: 200px;
            height: 200px;
            background-color: cornflowerblue;
        }

        .red {
            color: gold;
        }
        .fs40 {
            font-size: 40px;
        }
//html代码:
    div id="app">
        <div :class="flag?'red':'fs40'">今天下雨了</div>
    </div>
//vue代码:    
    <script src="./vue-2.4.0.js"></script>
    <script>
      let vm = new Vue({
        el: '#app',
        data: {
           flag: true,
        },
        methods: {
        
        }
      })
    </script>

数组内置对象

//css代码:
     .box {
            width: 200px;
            height: 200px;
            background-color: cornflowerblue;
        }

        .red {
            color: gold;
        }
        .fs40 {
            font-size: 40px;
        }
//html代码:
    div id="app">
        <div :class="class3">今天下雨了</div>
    </div>
//vue代码:    
    <script src="./vue-2.4.0.js"></script>
    <script>
      let vm = new Vue({
        el: '#app',
        data: {
           class3: [{ 'box': true, 'fs40': true }]
        },
        methods: {
        
        }
      })
    </script>

直接通过对象

//css代码:
     .box {
            width: 200px;
            height: 200px;
            background-color: cornflowerblue;
        }

        .red {
            color: gold;
        }
//html代码:
    div id="app">
        <div :class="{'box':true}"> 今天下雨了</div>
    </div>
//vue代码:    
    <script src="./vue-2.4.0.js"></script>
    <script>
      let vm = new Vue({
        el: '#app',
        data: {
           class3: [{ 'box': true, 'fs40': true }]
        },
        methods: {
        
        }
      })
    </script>

内联样式

数组

//html代码:
   <div id="app">
        <div :style="[style1,style2]">今天真好</div>
        <button @click="change">change</button>
    </div>
//vue代码:
<script src="./vue-2.4.0.js"></script>
<script>
    let vm = new Vue({
        el: '#app',
        data: {
            style1: { color: 'gold' },
            style2: { fontSize: '30px' },
        },
        methods: {
            change() {
                this.style1.color = 'green'
                this.style1.fontSize = '40px'
            }
        }
    })

对象

//html代码:
   <div id="app">
        <div :style="style1">今天真好</div>
    </div>
//vue代码:
<script src="./vue-2.4.0.js"></script>
<script>
    let vm = new Vue({
        el: '#app',
        data: {
            style1: { color: 'gold' },
        },
        methods: {
        
        }
    })

函数的返回值

//html代码:
   <div id="app">
        <div :style="getStyle(1)">今天真好</div>
    </div>
//vue代码:
<script src="./vue-2.4.0.js"></script>
<script>
    let vm = new Vue({
        el: '#app',
        data: {
            
        },
        methods: {
           getStyle(Number) {
                console.log(Number);
                return {
                    color: 'pink'
                }
            }
        }
    })

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值