v-model 这个指令用于双向绑定 input 的值,比如下面有个 输入框,他的值就可以用v-model 来绑定:

<div id="app"><input type="text" v-model = "message"><h2>{{message}}</h2>
</div><script>const app = new Vue({el:"#app",data:{message:"您好! BiHu!"}})
</script>

你会发现 当你修改 输入框中的值的时候 ,底下的 标题也会跟着改变,因为这就是 "双向绑定",即 data 中的 message 修改 那么input的值也修改,当input 的值修改,data中的message也一样修改。

其实它的原理我们也可以做:

无非就是 v-bind 绑定 + 一个input 事件触发:

<div id="app"><input type="text" :value="message" @input="message = $event.target.value" ><h2>{{message}}</h2>
</div>

当然,我们也可以将v-model用于textarea元素【自己测试】


v-model 绑定 radio 使用:

如果我们用单选框 选择性别:

<div id="app"><label for="M"><input id="M" type="radio" value="男" name="sex"> 男</label><label for="F"><input id="F" type="radio" value="女" name="sex"> 女</label><!--  要达到互斥的效果 单选框的name需要一致  -->
</div>

普通的选择代码就这样 ,注意     要达到互斥的效果 单选框的name需要一致  这些都是基础 你得懂。

如果你用v-model 去绑定:

<div id="app"><label for="M"><input id="M" type="radio" value="男"  v-model="sex"> 男</label><label for="F"><input id="F" type="radio" value="女" v-model="sex"> 女</label><h3>如果你用V-model绑定了值 sex,那么 你选择的sex是:{{sex}}<br>而且你可以name属性 即可达到互斥的效果</h3>
</div><script>const app = new Vue({el:"#app",data:{sex:""  //此时的sex为空 当然你想有默认值的话 可以是 男/女 {即radio的value}}})
</script>

功能我都一次性说完了。总结以下几点:

1. 可以不用name属性达到互斥单选

2.绑定后 可以随时用 胡须语法 查看选中的值

3.默认值可以直接在 绑定的变量中写 ,不用写原生  checked 属性.

5.响应式改变 sex的值 达到选中


v-model 绑定 checkbox 复选框:

这个复选框 原始的话 如果你选中 他的 checked 属性是为真的 ,反之为假:

我们来个例子(勾选已详细阅读 后 才能进入下一步操作):

<div id="app"><div>软件使用说明书<br>xxxx............... <br>   xxxx............. <br> <br></div><label><input type="checkbox" v-model="already" >      <!--因为是双向绑定 所以按下 already为true--><span style="color: fuchsia"><b>已详细阅读</b></span></label><br><br><button :disabled="!already">下一步</button>
</div><script>const app = new Vue({el:"#app",data:{already:false       //一开始肯定是没阅读的}})
</script>

你还可以打印一下 already 的值 会是 true 、 false 的。

这个是单个 而且绑定的变量初始化是 boolean型的 ,如果是多选框,那么就有特性要理清楚:

<div id="app"><label><input type="checkbox" value="篮球" v-model="hobby" >  篮球    <!--因为是双向绑定 所以按下 vue检测到v-model 绑定的类型是什么作出响应操作--></label><label><input type="checkbox" value="羽毛球" v-model="hobby" >   羽毛球</label><label><input type="checkbox" value="跑步" v-model="hobby"  >  跑步</label><label><input type="checkbox" value="跆拳道" v-model="hobby"  >   跆拳道</label><h3>    {{hobby}} </h3><!--打印一下hobby-->
</div><script>const app = new Vue({el:"#app",data:{already:false,      //注意 already 是boolean型hobby:[]            //注意 hobby 是数组}})
</script>

看代码可知,如果你绑定的是变量类型是 boolean 他就帮你操作 选中、未选中,但是如果是数组 他就帮你把这个 复选框的值 添加进去。

我发现 如果他识别不出你是什么类型【其他类型】  默认都按boolean来


v-model 绑定 select 选择框:

<div id="app"><h3>请选择你喜欢吃的水果:</h3><select name="fruit" id="fruit" v-model="fruit">     <!--注意啊 是在这里用v-model--><option value="苹果">苹果</option><option value="香蕉">香蕉</option><option value="菠萝">菠萝</option><option value="木瓜">木瓜</option></select><h3>{{fruit}}</h3> <!--打印一下-->
</div><script>const app = new Vue({el:"#app",data:{fruit:'香蕉',        //可以调初始值  也可以为空(为空默认第一个)}})
</script>

当绑定的类型是 字符串 可以指定 值,但是 要对应 option 的 value  即可!!!

我们还可以多选 配和 数组 ,多选可以添加到数组中:

<div id="app"><h3>请选择你喜欢吃的水果:</h3><select name="fruit" id="fruit" v-model="fruits" multiple>     <!--name 和 id 你自己换 /// multiple是多选属性 按住ctrl即可--><option value="苹果">苹果</option><option value="香蕉">香蕉</option><option value="菠萝">菠萝</option><option value="木瓜">木瓜</option></select><h3>{{fruits}}</h3> <!--打印一下数组-->
</div><script>const app = new Vue({el:"#app",data:{fruit:'香蕉',        //可以调初始值  也可以为空(为空默认第一个)fruits:[]               //这是个数组类型}})
</script>

这个不怎么常用,会用即可


值绑定

其实这个原理就是 先定义好input的值,然后你把它遍历出来,通过绑定渲染出不同的值 和 不同的属性:

<div id="app"><h3>请选择你喜欢的运动:</h3><label v-for="item in hobby" :id="item"><input type="checkbox" :value="item" v-model="choice">{{item}}</label><h3>您已选择:{{choice}}</h3>
</div><script>const app = new Vue({el:"#app",data:{hobby:["跑步","游泳","跆拳道","睡觉"],     //运动是可变的,如果你写在input 那么就写死了choice:[],           //已选择会存储在这}})
</script>

原理很简单 自己看代码即可

21. VUE 的 V-model 指令(双向绑定input)【主要绑定表单】相关推荐

  1. 前端进阶_狂神Vue笔记_语法指令v-bind、v-on、v-for_表单双绑_组件_Axios异步通信_Vue的生命周期_计算属性_插槽 <slot>_webpack使用_vue-router路由

    四.第一个Vue程序 4.1.什么是MVVM MVVM(Model-View-ViewModel)是一种软件设计模式,由微软WPF(用于替代WinForm,以前就是用这个技术开发桌面应用程序的)和Si ...

  2. vue3 antd项目实战——Form表单使用【v-model双向绑定数据,form表单嵌套input输入框、Radio单选框】

    vue3 ant design vue项目实战--单选框(Radio)的使用以及Form表单的双向绑定 知识调用(form表单的源代码附在文章最后) 场景复现 实现需求 form表单整体架构的搭建 i ...

  3. vue 按钮删除input内容_Vue表单和v-model

    一.基本用法 1.文本 <input v-model="message" placeholder="edit me"> <p>Messa ...

  4. 前端学习(1999)vue之电商管理系统电商系统之分析表单的数据

    目录结构 router.js import Vue from 'vue' import Router from 'vue-router' import Login from './components ...

  5. 前端学习(1954)vue之电商管理系统电商系统之重置表单数据

    目录结构 router.js import Vue from 'vue' import Router from 'vue-router' import Login from './components ...

  6. 前端学习(1865)vue之电商管理系统电商系统之实现表单的数据绑定

    修改头像位置 3目录结构 router.js import Vue from 'vue' import Router from 'vue-router' import Login from './co ...

  7. vue的lazy修饰符和number修饰符 、表单结构

    目录 vue的lazy修饰符 vue的number修饰符 表单的构成 表单域 表单控件 vue的lazy修饰符 在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步 ...

  8. form表单 vue 拖拽_vue实现可视化可拖放的自定义表单(代码示例)

    本篇文章给大家带来的内容是关于vue实现可视化可拖放的自定义表单(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 实现如例子所示的可视化可拖放表单功能.整个页面,分为左中右 ...

  9. Vue的常用指令(v-html {{}}文本插值,v-bind绑定属性,v-if条件渲染,v-for列表渲染,v-on @ 事件绑定,v-model表单绑定)

    Vue的常用指令(文本插值,绑定属性,条件渲染,列表渲染,事件绑定,表单绑定) Vue 的介绍 Vue 是一套构建用户界面的渐进式前端框架. 只关注视图层,并且非常容易学习,还可以很方便的与其它库或已 ...

  10. 【15】Vue:02-Vue表单基本操作、表单修饰符、自定义指令、计算属性computed、侦听器watch、过滤器、生命周期、数组变异方法、替换数组、动态数组响应数据、图书列表案例、TODOS案例

    文章目录 day02 Vue常用特性 表单基本操作 表单修饰符 自定义指令 Vue.directive 注册全局指令 Vue.directive 注册全局指令 带参数 自定义指令局部指令 计算属性 c ...

最新文章

  1. 【2012百度之星/资格赛】H:用户请求中的品牌 [后缀数组]
  2. Ubuntu 16.04 LTS 常用工具软件整理(陆续更新)
  3. ArcGIS几种数据格式2
  4. Java面试题及答案,java底层实现原理
  5. 【机器学习】朴素贝叶斯介绍及实例--对短信进行二分类 使用多项式分布
  6. Commons codec jar包详解
  7. c语言实现的optics算法,基于深度学习的光学系统设计方法
  8. 小程序Windows和linux,改进后的《自动显示天气预报》小程序(Linux和Windows环境都可以)...
  9. 教育局查询2021年高考成绩,关于广东省2021年普通高考英语听说考试成绩发布有关事宜的通知...
  10. office 公式编辑器 插入花体格式字母
  11. 曼联球星普巴来罗!POGMOJI APP即将上市
  12. npm安装express-art-template报错:no such file or directory, open 'D:xx\xx\package.json解决办法
  13. 计算机的硬盘配额如何更改,磁盘配额怎么设置
  14. C# 模拟鼠标点击(鼠标按键损坏,辅助工具)
  15. 用pygame做一个简单的python小游戏---七彩同心圆
  16. c语言中point用法,point的用法总结大全
  17. 【数字电路基础】CMOS晶体管的延时
  18. put和putIfAbsent的区别
  19. 2021年高考大连8中成绩查询,2021年新高考适应性考试成绩怎么查?八省联考成绩可以保留吗?...
  20. 丹尼尔·克雷格詹姆斯·邦德锻炼培训

热门文章

  1. Java单元测试--如何编写Controler接口的单元测试
  2. 如何写出高质量的技术文章?
  3. 服务器使用Win10代理上网
  4. 46岁编程女侠,4个月搞定深度学习,她的经历可以复制吗?
  5. 南阳nyoj586疯牛 和nyoj619详解总结
  6. 充分条件、必要条件、充分必要条件
  7. 王权富贵:Pytorch教学
  8. 【万字总结】数据结构与算法简述和CS综合,保姆级一文打包
  9. 元素类型为 “mapper“ 的内容必须匹配 “(cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|delete*|selec
  10. 02 12 字符串反转;汉字硬反转(天连草色一川平 -> 平川一色草连天)