Vue源码分析(3)事件指令与一般指令+基本的数据绑定、数据劫持

事件指令解析

1.从指令中取出事件名
2.根据指令的值从methods中得到对应的事件处理函数对象
3.给当前元素节点绑定指定的事件名和回调函数的dom事件监听(node.addEventListener(eventType, fn.bind(vm), false);)
4.指令解析完进行移除此指令

一般指令解析

1.得到指令名和指令值
2.从data中获取到对应的值
3.根据指令名确定需要操作元素节点的什么属性
v-text----textContent
v-html-----innerHtml
4.将得到的表达式的值设置到对应的属性上
5.移除元素的指令属性

数据绑定

一旦更新了data中某个属性的值,所有界面上直接使用或者间接使用了此属性的节点都会更新

数据劫持

基本思想:通过definProperty()来监视data中所有属性数据的变化,一旦发生变化就去更新界面
比如this.xxx=3,最先vm先知道,通过vm中的set改变data中xxx的值,set知道了,然后更新界面

猜你喜欢

转载自blog.csdn.net/weixin_46013619/article/details/104429071
今日推荐