热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Vue学习之表单数据双向绑定vmodel

1.双向数据绑定Vue.js是一个MVVM框架,即数据双向绑定,即当数据发生变化时,视图也就发生变化;当视图发生变化时&#x
1. 双向数据绑定

       Vue.js是一个MVVM框架,即数据双向绑定,即当数据发生变化时,视图也就发生变化;当视图发生变化时,数据也会跟着同步变化。这也算是Vue.js的精髓之处。值得注意的是,我们所说的数据双向绑定,一定是对于UI控件来说的,非UI控件不会涉及到数据双向绑定。单向数据绑定是使用状态管理工具的前提,如果我们用Vuex,那么数据流也是单项的,这时就会和双向数据绑定有冲突。

2. 为什么要实现数据的双向绑定

       在Vue.js中,如果使用Vuex,实际上数据还是单向的,之所以说是数据双向绑定,这是用的UI控件来说,对于我们处理表单,Vue.js的双向数据绑定用起来就特别舒服了。即两者并不互斥,在全局性数据流使用单项,方便跟踪;局部性数据流使用双向,简单易操作

3. 在表单中使用双向数据绑定

       可以使用v-model指令在表单、、元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但v-model本质上不过是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。
       注意:v-model会忽略所有表单元素的value、checked、selected特性的初始值而总是将Vue实例的数据作为数据来源,我们应该通过Javascript在组件的data选项中声明初始值。

3.1. 文本框

<body>
<div id&#61;"app">

<input type&#61;"text" v-bind:value&#61;"searchMap.keyWord" />

<input type&#61;"text" v-model&#61;"searchMap.keyWord" />
<p>您要查询的是&#xff1a;{{searchMap.keyWord}}p>
div>
<script src&#61;"https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
<script>
new Vue({
el: &#39;#app&#39;,
data: {
searchMap:{
keyWord: &#39;文本框的内容&#39;
}
}
});
script>
body>

填写完毕后&#xff0c;打开浏览器&#xff0c;对比两个输入框&#xff0c;查看效果。
在这里插入图片描述

3.2. 单复选框

<div id&#61;"app">
单复选框&#xff1a;
<input type&#61;"checkbox" id&#61;"checkbox" v-model&#61;"checked">
<label for&#61;"checkbox">{{ checked }}label>
div>
<script src&#61;"https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
<script>
new Vue({
el: &#39;#app&#39;,
data: {
checked: false
}
});
script>

在这里插入图片描述
在这里插入图片描述
注&#xff1a;当勾选时变true&#xff0c;取消时变false。

3.3. 多复选框

示例1&#xff1a;

多复选框&#xff1a;
<input type&#61;"checkbox" id&#61;"checkbox" value&#61;"吃饭" v-model&#61;"checked">
<label>吃饭label>
<input type&#61;"checkbox" id&#61;"checkbox" value&#61;"睡觉" v-model&#61;"checked">
<label>睡觉label>
<input type&#61;"checkbox" id&#61;"checkbox" value&#61;"打豆豆" v-model&#61;"checked">
<label>打豆豆label><br />
<p>选中的值&#xff1a;{{checked}}p>
<script src&#61;"https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
<script> new Vue({ el: &#39;#app&#39;, data: { checked: [] }
});
script>

示例2&#xff1a;

<div id&#61;”app”>
//动态读取&#xff0c;使用<label>嵌套
<label v-for&#61;"opt in options" >
<input type&#61;"checkbox" :value&#61;"opt.value" v-model&#61;"slb" />{{opt.text}}
label>
div>
<script src&#61;"https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
<script type&#61;"text/Javascript">var vue &#61; new Vue({el:&#39;#app&#39;,data:{options:[{value:&#39;A&#39;, text:&#39;吃饭&#39;},{value:&#39;B&#39;, text:&#39;睡觉&#39;},{value:&#39;C&#39;, text:&#39;打豆豆&#39;},],slb : [&#39;A&#39;, &#39;B&#39;]}});
script>

在这里插入图片描述

3.4. 单选按钮

<body>
<div id&#61;"app">
单选按钮&#xff1a;
<input type&#61;"radio" id&#61;"one" value&#61;"One" v-model&#61;"picked">
<label for&#61;"one">Onelabel>
<input type&#61;"radio" id&#61;"two" value&#61;"Two" v-model&#61;"picked">
<label for&#61;"two">Twolabel>
<span>选中的值: {{ picked }}span>
div>
<script src&#61;"https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
<script> new Vue({ el: &#39;#app&#39;, data: { picked: &#39;&#39; }});
script>
body>

在这里插入图片描述

3.5. 下拉框

<body>
<div id&#61;"app">
下拉框&#xff1a;
<select v-model&#61;"selected">
<option disabled value&#61;"">请选择option>
<option value&#61;"北京">北京option>
<option value&#61;"上海">上海option>
<option value&#61;"深圳">深圳option>
select>
<span>选中的值: {{ selected }}span>
div>
<script src&#61;"https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
<script> var vm &#61; new Vue({ el: &#39;#app&#39;, data: { selected: &#39;北京&#39; // 默认选择北京&#xff08;不需要默认选择则写成&#39;&#39;&#xff09;} });
script>
body>

在这里插入图片描述
注意&#xff1a;如果 v-model 表达式的初始值未能匹配任何选项&#xff0c;

推荐阅读
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 实现一个通讯录系统,可添加、删除、修改、查找、显示、清空、排序通讯录信息
    本文介绍了如何实现一个通讯录系统,该系统可以实现添加、删除、修改、查找、显示、清空、排序通讯录信息的功能。通过定义结构体LINK和PEOPLE来存储通讯录信息,使用相关函数来实现各项功能。详细介绍了每个功能的实现方法。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 先看看ElementUI里关于el-table的template数据结构:<template><el-table:datatableData><e ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
author-avatar
IP-COM东莞办事处_426
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有