Vue 双向数据绑定

之前通过v-bind来完成的数据绑定,属性值和表达式进行绑定,表达式的值发生变化了属性值也跟着发生变化。

单向数据绑定:

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>首页</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>
 
<body>  

    <div id="app">
        单向数据绑定:<input type="text" v-bind:value="name">           
    </div>
         
    <script type="text/javascript"> 

    Vue.config.productionTip = false     
      new Vue({    
          el: "#app",   
          data:{ 
            name: "lucas",
          }
       })
    </script>
 
</body>
</html>

v-bind最大特点就是单向数据绑定,修改了data里面的值容器里面的值也会跟着改变,但是修改容器里面的值data里面的值是不会发生变化的。

还有另外一个指令可以完成双向的绑定。也就是页面中的值发生变化还能够影响到data的值,这就需要使用v-model指令了。

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>首页</title>
    <!--引入vue,这里引入vue那么这里就多了vue构造函数-->
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>
 
<body>  

    <div id="app">
        单向数据绑定:<input type="text" v-bind:value="name"><br>
        双向数据绑定:<input type="text" v-model:value="name">
    </div>
         
    <script type="text/javascript"> 

    Vue.config.productionTip = false     
      new Vue({    
          el: "#app",   
          data:{ 
            name: "lucas",
          }
       })
    </script>
 
</body>
</html>

但是需要注意的是v-modle是不能使用在如h2这种标签上面的。v-model只能应用在表单类元素上(输入类元素,也就是得有value值才行)。

随着输入,删除你的value值是在发生改变的,而h2这种标题类型的是不能够输入的。不能够输入就是没有value值,没有value值就证明不能捕获用户的输入,连输入的值都不能捕获那怎么可能影响数据的变化呢?所以这就是v-model的设计意义和value值绑定。

input 单选框 多选框 select框 多行输入 有很多的表单元素,这些表单元素都有一个特点就是都有value值,因为v-model就是对value进行说话。

html 复制代码
     <h1 v-model:x="name"></h1>

Vue中有2种数据绑定的方式:

1.单向绑(v-bind):数据只能从data流向页面(单方向)

2.双向绑定(V-mode1):数据不仅能从data流向页面,还可以从页面流向data(双方向)

备注:

1.双向绑定一般都应用在表单类元素上(如:input、select等)

2.v-model:value可以简写为v-model,因为v-mode1默认收集的就是value值

最后简写如下:

html 复制代码
    <div id="app">
        单向数据绑定:<input type="text" :value="name"><br>
        双向数据绑定:<input type="text" v-model="name">
    </div>
相关推荐
A黄俊辉A3 天前
uniapp webview中实现 app和内嵌的H5双向通信
vue.js·json
honkun63 天前
vue 表格组件 vxe-table 配置 ajax 请求自动加载数据与表单查询
vue.js·vxe-table
kybs19913 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
雪芽蓝域zzs4 天前
第26章:ECharts 自定义主题 + 页面一键切换主题(深色 / 浅色两套)
vue.js·echars
雪芽蓝域zzs4 天前
第22章:ECharts 图表联动(多图表交互联动)
vue.js·echars
daols884 天前
vue 表格组件 vxe-table 实现虚拟滚动与无需滚动加载
vue.js·vxe-table
雪芽蓝域zzs4 天前
第18章:ECharts 折线图 + 标记点、标记线,自定义 tooltip
vue.js·echars
雪芽蓝域zzs4 天前
第24章:ECharts 地图组件(基础行政区地图,若依 Vue3)
vue.js·echars
计算机毕设定制辅导-无忧学长4 天前
《基于Vue的流浪动物救助中心管理系统的设计与实现》
java·vue.js·spring boot·流浪动物救助中心管理系统
雪芽蓝域zzs4 天前
第25章:地图下钻交互(点击省份,切换到对应省份城市地图)
vue.js·echars