vue.js的主要功能之一是实现数据的双向绑定。介绍了在表单处理中如何利用v-model指令实现双向绑定;
v-model指令只能用于输入、选择、textarea等表单元素。所谓的双向绑定是指js中我们vue实例中的数据与其呈现的dom元素上的内容是一致的,无论谁被更改,对方都会相应地更新为相同的数据。这是通过设置属性访问器实现的。例如:
var data={ name: 'erik ',getname : function(){ return this . name;},setName:函数(名称){ this.name=name}};在上面的代码中,我们使用了getName()和setName()方法作为访问器,我们可以进一步严格限制(例如,通过使用Object.defineProperty方法)直接访问Name属性。数据. name的所有读写都必须通过data.getName()和data.setName()方法完成。此时,我们重写访问器方法,添加要监控的属性值的变化,就可以实现数据的双向绑定。
那么我们如何在表单处理中使用v-model呢?我们先来看看官方文件中给出的例子:
表单id='演示'!- text - p输入类型=' text ' v-model=' msg ' { msg } }/p!- checkbox - p输入类型='checkbox' v-model='已选中' {checked?yes' : 'no'}} /p!-单选按钮- p输入类型=' radio ' name=' picked ' value=' one ' v-model=' picked '输入类型=' radio ' name=' picked ' value=' two ' v-model=' picked ' { picked } }/p!-select-p select v-model=' selected ' option one/option two/option/select { { selected } }/p!-多选-p select v-model='多选'多选选项一/选项二/选项三/选项/select { {多选} }/p ppreda : { { $ data | json2 } }/js对应pre/p/form:
new Vue({ el: '#demo ',data: { msg : 'hi!',勾选了: true,勾选了: '一',选中了: '二',多选了: ['一','三']})有以下效果:
小伙伴们可以试着写下这一页。当您在浏览器中调整上述表单元素的选定值时,您会发现打印的vue实例内容也会发生变化,如果您更改代码中的vue实例数据内容,则呈现的表单的选定值也会发生变化。
此外,v-model指令还有几个可选参数:lazy、number、options、去抖
1.使用lazy参数将双向数据同步的时间节点从输入触发器更改为更改触发器,调用方法如下:
!-在“change”而不是“input”之后同步-input v-model=“msg”lazy 2。使用number参数是通知由v-model绑定的dom元素默认将用户输入值视为数字,调用如下:
输入v型='年龄'数字3。options参数用于呈现选定项目的列表,其调用如下:
select v-model=' selected ' options=' my options '/select其中options的参数名指向一个数组,该数组可以包含一个字符串或一个对象,该对象的形式可以是{text: ' ',value:''},指定option的值属性和文本内容,例如:
[{text:' a ',value:' a'},{text:' b ',value:' b'}]将呈现:
选择选项值=' a ' a/选项选项值=' b ' b/选项/如果对象的形式为{ label : },请选择选项: [.]},可以呈现多个选项组optgroup,如下例所示:
[{label:' a ',options: ['a ',' b']},{label:' b ',options 3360[' c ',' d']}]将呈现:
选择optgroup标签='A '选项值=' A ' A/选项选项值='b ' B/选项/optgroup optgroup标签=' B '选项值=' c ' c/选项选项值='d'd/选项/optgroup/select4。使用去抖参数是为了指定延迟时间,这将延迟从按键触发到数据更新同步的时间。当我们的更新操作非常耗时时,这个属性非常有用。例如,当我们键入字符时,搜索引擎发送ajax请求来完成自动完成提示,调用如下:
输入v-model=' msg '去抖=' 500 '以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。