欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

浅尝vue双向绑定原理

程序员文章站 2022-06-22 16:49:16
v-model是一个语法糖v-model=v-on:input+v-bind:value我们可以用 v-model 指令在表单 input textarea select元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但 v-model 本质上不过是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。v-model 会忽略所有表单元素的 value、checked、selected属性的初始值而总是将 Vue 实例的数据作为数据来源。通过...

v-model是一个语法糖

v-model=v-on:input+v-bind:value
  • 我们可以用 v-model 指令在表单 input textarea select元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但 v-model 本质上不过是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。
  • v-model 会忽略所有表单元素的 value、checked、selected属性的初始值而总是将 Vue 实例的数据作为数据来源。通过js中的data声明初始值。
   <input class="navbar-search_text" type="text" v-model="val"
    placeholder="请输入您要搜索的内容" />{{val}}
	<input class="navbar-search_text" type="text" v-bind:value="val"
	 placeholder="请输入您要搜索的内容" @input="inputChange"/> 
	data() {
			return {
				val:''
			};
		},
	inputChange(e){
			const {value}=e.detail//先拿到输入的值
			console.log(value)//然后在这里显示出来
		}

修饰符

.lazy
在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步 (除了上述输入法组合文字时)。你可以添加 lazy 修饰符,从而转为在 change 事件_之后_进行同步:
<!-- 在“change”时而非“input”时更新 -->
<input v-model.lazy="msg">
.number

如果想自动将用户的输入值转为数值类型,可以给 v-model 添加 number 修饰符:

<input v-model.number="age" type="number">

这通常很有用,因为即使在 type=“number” 时,HTML 输入元素的值也总会返回字符串。如果这个值无法被 parseFloat() 解析,则会返回原始的值。

.trim

如果要自动过滤用户输入的首尾空白字符,可以给 v-model 添加 trim 修饰符:

<input v-model.trim="msg">

参考文档:Vue.js官网
本文均属于原创,如有侵权请联系删除
欢迎各位大佬批评指正

本文地址:https://blog.csdn.net/qq_45090740/article/details/107289923