当前位置: 首页 > news >正文

Vue框架学习笔记——v-bind数据单向绑定和v-model数据双向绑定

文章目录

  • v-bind,数据单向绑定
    • 简写形态(省略v-bind,只留冒号)
    • 示例一(将输入框数据改为:哈哈哈哈哈):
    • 实例二(将Vue实例中的name改为字符串:"单向绑定"):
  • v-model,数据双向绑定(并非所有属性均可使用)
    • 简写形态(保留v-model,删除冒号和value,即":value"):
    • 示例一(将v-model对应的输入框输入数据:哈哈哈):
    • 示例二(将Vue实例中的name改为字符串"我不知道"):
  • 无法使用v-model的情况:
    • 示例一(使用v-bind成功):
    • 示例二(使用v-model失败):


v-bind,数据单向绑定

当我们将代码写成这样的时候,只使用v-bind单向绑定标签内元素的属性:

<body><div id="box"><input type="text" v-bind:value="name"></div><script type="text/javascript">Vue.config.productionTip = falsenew Vue({el: '#box',data: {name: "这里是name的值",}})</script>
</body>

会呈现如下的效果:
在这里插入图片描述
标签中的数据和Vue实例中的数据是单向绑定的,Vue实例中的对应数据改变会带着标签中的数据改变,但是标签中的数据改变则不会带着Vue实例中的数据改变。

简写形态(省略v-bind,只留冒号)

<input type="text" :value="name">

展示图片(未刷新页面,未修改代码,仅在该页面直接修改或者使用Vue开发者工具):

示例一(将输入框数据改为:哈哈哈哈哈):

Input输入框中的数据无法带动Vue实例中的数据一起变化
在这里插入图片描述
效果:Input中的数据改变了,但是Vue实例中的数据没有改变

实例二(将Vue实例中的name改为字符串:“单向绑定”):

修改Vue实例数据可以改变Input输入框数据
在这里插入图片描述
效果:Vue实例中的数据改变可以带动Input中的数据改变

v-model,数据双向绑定(并非所有属性均可使用)

多应用于表单类元素,其他元素会出错。
将上述的代码修改为:

<body><div id="box">v-bind:<input type="text" v-bind:value="name"><p></p>v-model:<input type="text" v-model:value="name"></div><script type="text/javascript">Vue.config.productionTip = falsenew Vue({el: '#box',data: {name: "这里是name的值",}})</script>
</body>

就像v-bind可以简写一样,v-model针对于value值,也可以简写。

简写形态(保留v-model,删除冒号和value,即":value"):

<input type="text" v-model="name">

不会出现错误

使用v-model就可以实现数据的双向绑定,也就是input输入框中的数据会影响Vue实例中的数据,Vue实例中的数据也会影响Input输入框中的数据。

展示图片(未刷新页面,未修改代码,仅在该页面直接修改或者使用Vue开发者工具),存在数据双向绑定和数据单向绑定的连锁反应,可以仔细自考

示例一(将v-model对应的输入框输入数据:哈哈哈):

在这里插入图片描述
效果:修改v-model的数据会改变Vue实例中的数据,进而带动单向数据绑定的v-bind输入框一起变化

示例二(将Vue实例中的name改为字符串"我不知道"):

在这里插入图片描述
效果:修改Vue实例中的数据会改变v-model的数据,也会改变v-bind输入框的数据

无法使用v-model的情况:

v-model只能用于表单情况,输入类元素,存在value值的情况。
不存在value值的元素无法捕捉用户的输入数据,根本不存在从元素改变数据的路径。

单选框,多选框,Input,select等等都行,它们都存在value值

示例一(使用v-bind成功):

样例代码:

<body><div id="box"><h1 v-bind:x="name">这里</h1></div><script type="text/javascript">Vue.config.productionTip = falsenew Vue({el: '#box',data: {name: "这里是name的值",}})</script>
</body>

实例图片(使用v-bind,元素界面x属性没有丢失):
在这里插入图片描述

示例二(使用v-model失败):

样例代码(将示例一代码中的v-bind修改为v-model):

<body><div id="box"><h1 v-bind:x="name">这里</h1></div><script type="text/javascript">Vue.config.productionTip = falsenew Vue({el: '#box',data: {name: "这里是name的值",}})</script>
</body>

在这里插入图片描述
h1标签中的x属性丢失,且可以在控制台(console)发现错误(模版编译失败):
在这里插入图片描述


至此,结束。

如果你觉得这篇文章写的不错,多多点赞~收藏吧!

http://www.lryc.cn/news/240555.html

相关文章:

  • 将对象转成URL参数
  • 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法
  • 超级武器!深入LoadRunner性能测试流程及极速分析结果!
  • 解决requests库进行爬虫ip请求时遇到的错误的方法
  • 大语言模型领域的重要术语解释
  • 无需公网IP,使用内网穿透实现公网访问本地OpenWRT管理界面
  • 利用 docker 实现JMeter分布式压测
  • Sentinel 分布式系统
  • Cookie、Session、CBV加装饰器的三种方法
  • 【高级渗透篇】网络安全面试
  • 【Flink】Process Function
  • 【源码分析】zeebe actor模型源码解读
  • python3实现类似expect shell的交互式与SFTP的脚本
  • java游戏制作-飞翔的鸟游戏
  • NodeMCU ESP8266构建Web Server网页端控制设备
  • 搭建区块链
  • Python通过selenium调用IE11浏览器报错解决方法
  • Ubuntu 1.84.2Visual Studio Code 下载配置与vscode查看内存Hex Editor插件,简单易懂
  • opencv-图像金字塔
  • 字符串匹配算法——KMP
  • 电子学会C/C++编程等级考试2023年03月(一级)真题解析
  • 微信小程序汽车租赁系统
  • docker部署微服务
  • 统计voc格式数据中的xml标签、bndbox到excel表格中
  • 51单片机利用I/O口高阻状态实现触摸控制LED灯
  • 自动驾驶术语汇总
  • Jsonpath - 数据中快速查找和提取的强大工具
  • java中,通过替换word模板中的关键字后输出一个新文档
  • MySQL数据库约束你真的懂吗?
  • YOCTO 下载repo工具失败解决办法