New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[vue] 你知道v-model的原理吗?说说看 #560
Comments
原生input其实只是一个语法糖,:bind="value"与@change="value = $event.target.value"的结合。 |
监听的事件 以及绑定的属性 可以通过model设置为其他的。 |
v-model只不过是一个语法糖而已,真正的实现靠的还是
|
v-model是个语法糖: |
v-model是默认使用组件的 |
為了避免不同的 value 有不同的作用,現在可以使用下面的方式自訂義自己想要的 v-model 行為。 model: {
prop: 'checked',
event: 'change'
} 如果想要更改 this.$emit('change', $event.target.value); |
标签上使用``` {{msg}} ``` |
v-model是一个语法糖,对应组件内部实现的话,props传value,触发用$emit('input') |
v-model本质上是语法糖,其实就是既用v-bind:value绑定了数据,又用v-on:input添加了一个事件监听 |
|
v-model其实是语法糖,实现了给表单元素绑定value和相应的事件。源码里面对v-model编译后,实质上在实例的on属性上添加了回调函数,最后都是执行addEventListener。 |
实质上来说是一种封装或者说是语法糖,负责监听用户的输入事件,并更新数据。 |
举个例子: |
双向数据绑定,相当于给input框增加了一个input事件,实时监听用户输入的结果 |
v-model 实际上就是vue为表单元素添加input或者是change事件,在这些内容更改事件中实现vue的双向绑定 |
数据劫持 + 发布订阅 |
v-model只不过是一个语法糖而已,真正的实现靠的还是v-model主要提供了两个功能,view层输入值影响data的属性值,data属性值发生改变会更新view层的数值变化. |
vue2 默认使用input作为事件,使用value作为属性 |
[vue] 你知道v-model的原理吗?说说看
The text was updated successfully, but these errors were encountered: