Vue-双向数据绑定VM_View-Model

VM双向数据绑定

MVVM框架,当数据发生改变的时候,视图也发生变化,当视图发生变化的时候,数据也会发生变化

只要使用 v-model 指令在表单 元素上创建双向数据绑定,v-model本质上是一个语法糖,负责监听用户的输入事件以更新数据,并对一些极端场景做一些处理

Demo

  • <div id="vue-app">
        <input type="text" v-model="message">{{message}}
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var vm=new Vue({
            el:"#vue-app",
            data:{
                message:"haoyunTest"
            }
        });
    </script>
    
  • image-20200904220209758

  • image-20200904220221028

  • view层随意更改model层就会跟着变化

  • image-20200904220331563

  • model层更改view层也会变化,这就是双向绑定

  • 下拉框

  • <body>
    <div id="vue-app">
        <select v-model="message">
            <option>A</option>
            <option>B</option>
            <option>C</option>
        </select>
        <span>{{message}}</span>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var vm=new Vue({
            el:"#vue-app",
            data:{
                <!--默认选中-->
                message:"B"
            }
        });
    </script>
    </body>
    
  • image-20200904231942892

  • 注意:

    • v-model会忽略所有的表单元素,value、checked、selected特性的初始值而总是将vue实例的参数作为数据来源,声明初始值应该在JavaScript组件的data中声明

    • <select v-model="message">
          <option>A</option>
          <option>B</option>
          <option selected>C</option>
      </select>
      
    • 比如这里selected特性是下拉框默认,但是设置了v-model就会忽略这个

  • 如果没有在data初始化的话应该写一个disabled 让它必须选择

  • <body>
    <div id="vue-app">
        <select v-model="message">
            <option disabled value="">--请选择--</option>
            <option>A</option>
            <option>B</option>
            <option>C</option>
        </select>
        <span>{{message}}</span>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var vm=new Vue({
            el:"#vue-app",
            data:{
                <!--默认选中-->
                message:""
            }
        });
    </script>
    </body>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值