全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

vue.js指令v-model使用方法

vue.js的一大功能便是实现数据的双向绑定,本文就表单处理时运用v-model指令实现双向绑定做一个介绍:

v-model这个指令只能用在<input>, <select>,<textarea>这些表单元素上,所谓双向绑定,指的就是我们在js中的vue实例中的data与其渲染的dom元素上的内容保持一致,两者无论谁被改变,另一方也会相应的更新为相同的数据。这是通过设置属性访问器实现的。例如:

var data = {
 name: "erik",
 getName: function() {
  return this.name;
 },
 setName: function(name) {
  this.name = name;
 }
};

上面的代码中我们通过getName()和setName()方法作为访问器,我们可以进一步严格限制(如借助Object.defineProperty方法)不直接访问name这个属性,所有对data.name的读写都必须通过data.getName()和data.setName()方法。此时我们改写访问器方法,添加对属性值改变得到监控,便可以实现数据的双向绑定。

那么在表单处理中我们具体如何使用v-model呢,先看看官方文档给出的例子:

<form id="demo">
 <!-- text -->
 <p>
 <input type="text" v-model="msg">
 {{msg}}
 </p>
 <!-- checkbox -->
 <p>
 <input type="checkbox" v-model="checked">
 {{checked ? "yes" : "no"}}
 </p>
 <!-- radio buttons -->
 <p>
 <input type="radio" name="picked" value="one" v-model="picked">
 <input type="radio" name="picked" value="two" v-model="picked">
 {{picked}}
 </p>
 <!-- select -->
 <p>
 <select v-model="selected">
  <option>one</option>
  <option>two</option>
 </select>
 {{selected}}
 </p>
 <!-- multiple select -->
 <p>
 <select v-model="multiSelect" multiple>
  <option>one</option>
  <option>two</option>
  <option>three</option>
 </select>
 {{multiSelect}}
 </p>
 <p><pre>data: {{$data | json 2}}</pre></p>
</form>

对应的js:

new Vue({
 el: '#demo',
 data: {
 msg  : 'hi!',
 checked : true,
 picked : 'one',
 selected : 'two',
 multiSelect: ['one', 'three']
 }
})

效果如下:

小伙伴们可以尝试一下写出这个页面,在浏览器中当你调整上面表单元素的选中值时,你会发现下面打印的vue实例内容也会随之改变,而如果你在代码中改变vue实例data内容时渲染出来的表单选中值也会随之改变。

另外,v-model这个指令还有几个可选的参数:lazy,number,options,debounce

1.使用lazy参数是将双向数据同步的时间节点从input触发改为了change触发,调用方式如下:

<!-- synced after "change" instead of "input" -->
<input v-model="msg" lazy> 

2.使用number参数是通知v-model绑定的dom元素把用户输入值默认当成数字来处理,调用如下:

<input v-model="age" number>
 

3.使用options参数是用于渲染一个select项的列表,调用方式如下:

<select v-model="selected" options="myOptions"></select>

其中options的参数名指向一个数组,该数组可以包括字符串或对象,对象可以是{text:'', value:''}的形式,指定了<option>的value属性与text内容,例如:

[
 { text: 'A', value: 'a' },
 { text: 'B', value: 'b' }
]

将渲染出:

<select>
 <option value="a">A</option>
 <option value="b">B</option>
</select>

如果对象是{ label:'', options:[...] }的形式,则可以渲染出多个option组<optgroup>,如下例:

[
 { label: 'A', options: ['a', 'b']},
 { label: 'B', options: ['c', 'd']}
]

将渲染出:

<select>
 <optgroup label="A">
 <option value="a">a</option>
 <option value="b">b</option>
 </optgroup>
 <optgroup label="B">
 <option value="c">c</option>
 <option value="d">d</option>
 </optgroup>
</select>


4.使用debounce参数是指定一个延迟时间,延迟从按键触发到数据更新同步之间的时间,当我们的更新操作比较耗时时这个属性十分有用,例如搜索引擎在我们键入字符时发送ajax请求完成自动补全提示,调用如下:

<input v-model="msg" debounce="500">

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# vue.js  # 指令  # v-model  # 在vue自定义组件中使用 v-model指令详情  # 浅谈 Vue v-model指令的实现原理  # vue.js 实现v-model与{{}}指令方法  # Vue常用指令V-model用法  # vue双向数据绑定指令v-model的用法  # Vue.js中v-model指令的用法介绍  # Vue中指令v-model的原理及使用方法  # 表单  # 绑定  # 也会  # 这是  # 几个  # 多个  # 你在  # 当你  # 一大  # 我们可以  # 便可  # 做一个  # 可选  # 当我们  # 则可  # 用在  # 你会发现  # 如何使用  # 大家多多  # 不直接 


相关文章: 如何选择高效响应式自助建站源码系统?  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  C#如何在一个XML文件中查找并替换文本内容  如何通过山东自助建站平台快速注册域名?  制作网站公司那家好,网络公司是做什么的?  PHP 500报错的快速解决方法  网站制作模板下载什么软件,ppt模板免费下载网站?  重庆市网站制作公司,重庆招聘网站哪个好?  C++如何使用std::optional?(处理可选值)  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  制作销售网站教学视频,销售网站有哪些?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  如何用PHP快速搭建高效网站?分步指南  安徽网站建设与外贸建站服务专业定制方案  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  建站VPS配置与SEO优化指南:关键词排名提升策略  寿县云建站:智能SEO优化与多行业模板快速上线指南  如何通过建站之星自助学习解决操作问题?  如何在阿里云ECS服务器部署织梦CMS网站?  建站之星如何配置系统实现高效建站?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  宝塔Windows建站如何避免显示默认IIS页面?  建站之星安装失败:服务器环境不兼容?  高端网站建设与定制开发一站式解决方案 中企动力  建站之星代理费用多少?最新价格详情介绍  自助网站制作软件,个人如何自助建网站?  建站之星在线客服如何快速接入解答?  如何生成腾讯云建站专用兑换码?  独立制作一个网站多少钱,建立网站需要花多少钱?  焦点电影公司作品,电影焦点结局是什么?  如何在阿里云域名上完成建站全流程?  如何通过虚拟机搭建网站?详细步骤解析  如何零成本快速生成个人自助网站?  怎么将XML数据可视化 D3.js加载XML  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  建站之星安装路径如何正确选择及配置?  建站之星安装后界面空白如何解决?  如何做静态网页,sublimetext3.0制作静态网页?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  黑客如何利用漏洞与弱口令入侵网站服务器?  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  长沙企业网站制作哪家好,长沙水业集团官方网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。