双向绑定:更改数据,会更新页面显示(内部变化);用户手动改变表单值,输入或者选择,会更新数据(外部变化)。
双向绑定,分为 初始化绑定 和 双向更新 两个部分。
- 初始化绑定,就是初始化时给表单元素绑定值,绑定事件,为双向更新做准备。
- 双向更新,就是任意一边变化,同时能让另一个边更新。
1、初始化绑定
1、v-model 怎么给表单绑定数据
执行render函数时,获取vue实例上的数据
2、v-model 绑定什么事件
默认为表达元素绑定input 事件;
为select,checkbox,radio元素时绑定change事件。
3、v-model 怎么绑定事件
生成dom之后,插入dom之前绑定事件,用addEventListener绑定事件。
2、v-model 如何进行双向更新
1、更改数据,会更新页面显示
组件中的v-model 绑定了 数据name ,那么数据name 会收集这个组件的 watcher到自己的sub数组中;
当内部修改了数据 name 时,触发数据name的setter,通知收集器内的 watcher 更新。
2、户手动改变表单值,输入或者选择,会更新数据
手动改变表单,事件触发,执行事件回调
function($event) {
name = $event.target.value
}
当事件回调执行的时候,会 直接赋值 给 组件实例的name