Vue核心原理知识点

  

数据代理(MVVM.js)
1。通过一个对象代理对另一个对象中属性的操作(读/写)
2。通过vm对象来代理数据对象中所有属性操作
3。好处:更方便的操作数据中的数据
4。基本实现流程
1在通过Object.defineProperty()给vm添加与数据对象的属性对应得属性描述符
2祝辞所有添加的属性都包含getter/setter
3祝辞;在getter/setter内部去操作数据中对应的属性数据

  

模板解析(compile.js)用来初始化显示
1。模板解析的关键对象:compile.js
2。模板解析的基本流程
1祝辞将el的所有子节点取出,添加到一个新建的文档片段中
2在对片段中的所有层次子节点递归进行编译解析处理
对插值语法文本进行解析
对元素节点的指令属性进行解析
事件指令解析
一般指令解析
3祝辞将解析后的片段添加到el中显示
3。解析大括号表达式文本节点{{名称}}textnode textContent=值
1祝辞根据正则对象得到匹配出的表达式字符串:子匹配/RegExp。
2比1美元;从数据中取出表达式对应的属性值

  

4。事件指令解析
1祝辞;从指令名中取出事件名
2祝辞根据指令的值从方法中得到对应的事件处理函数对象
3的在给当前元素节点绑定指定事件名和回调函数的事件监听
4祝辞指令解析完后,移除此指令属性

  

5。一般指令解析
1祝辞得到指令名指令值
2的在从数据中根据表达式得到对应的值
3祝辞根据指令名确定需要操作元素节点的什么属性
v-text textContent属性
v-html innerHtml属性
v-class className属性
4祝辞将得到的表达式的值设置到对应的属性上
5祝辞移除元素的指令属性

Vue核心原理知识点