小白,最近刚在学vue的原理,数据=>模板的更新大概知道了原理,是通过数据变化的劫持和视图解析器去做的。
那么像输入框这样的组件,是我们手动去修改模板,那么vue是如何监听到我们修改的模板并且将新的值赋给data中的数据的呢?
小白,最近刚在学vue的原理,数据=>模板的更新大概知道了原理,是通过数据变化的劫持和视图解析器去做的。
那么像输入框这样的组件,是我们手动去修改模板,那么vue是如何监听到我们修改的模板并且将新的值赋给data中的数据的呢?
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答4.6k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答5k 阅读
我猜你应该说的是v-model的实现。
其实v-model只是一个语法糖,让你省去了监听事件改变数据的步骤。
在Vue编译的阶段,会解析v-model指令,生成代码的时候,其实标签上就不存在v-model了,而是用 :value="v-model后面的对象" v-on:event 进行了替换,事件类型取决于表单元素类型(input, select, radio等等)
如果代码这样写的:
你可以认为你实际写的代码是下面这个:
有兴趣的话给你贴一下源码吧: