Vue组件上的v-model双向绑定原理是什么
导读:本文共2468字符,通常情况下阅读需要8分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 组件上的v-model原理v-model指令在组件上的编译过程的parse阶段与在表单元素上一样(可以参考),与普通表单元素不同之处在于genCode的阶段,在执行model函数生成代码的时候,会执行genComponentModel函数:v-model编译阶段exportdefaultfunctionmodel(el:ASTElement,dir:ASTD... ...
目录
(为您整理了一些要点),点击可以直达。v-model
指令在组件上的编译过程的parse
阶段与在表单元素上一样(可以参考),与普通表单元素不同之处在于genCode
的阶段,在执行model
函数生成代码的时候,会执行genComponentModel
函数:
可以看到组件执行完genDirectives
解析model
指令后,会在AST element
节点上生成model
对象,这是与普通表单元素不同的地方。组件的v-model
在genCode
过程中,执行完genDirectives
后还有有一段逻辑,如下:
到这个时候才生成了最终的代码字符串。
在创建组件的时候,有上面这样一段逻辑,当分析到节点上有model
对象的时候,会调用transformModel
函数,对v-model
对象做下转化:
可以看到最终是将编译过程中生成的model
对象,解析成为value
属性和input
事件,扩展到组件构造器的options
配置项中。
以上可以得知,组件上v-model
指令的本质也是生成了value
属性和input
事件。
Vue组件上的v-model双向绑定原理是什么的详细内容,希望对您有所帮助,信息来源于网络。