VDOM的渲染流程
- 将VDOM渲染为真实的DOM——
creatElement
- 渲染流程
- 1.通过数据拦截【es5】的
Object.defineProperty
中的getter和setter实现对数据进行的设置 - 2.通过VDOM模拟真实的dom结构
- 3.通过特定的render算法将VDOM解析
- 4.渲染真实DOM
- 5.当数据改变时又会再次生成VDOM
- 6.通过
diff
算法同级比较新旧VDOM,生成patch
补丁对象 - 7.重新渲染正式dom,之渲染变化的部分
- 1.通过数据拦截【es5】的
- 为什么要用VDOM模拟dom结构?
- 频繁的dom操作是性能优化的瓶颈,VDOM加载速度快
- 操作数据要比操作真实DOM快得多
diff算法
- diff算法来源于后端思想,用于比较两个文件的不同
- Vue中diff算法是js层面的计算,是同级比较
- diff算法比较后的结果是生成一个patch补丁对象
JSX
JSX
===>javascript+xml:即在js中可以写入DOM结构- 为什么Vue要是用JSX?
- 当dom结构比较复杂的时候,需要模拟VDOM就会变得复杂,而jsx正是为解决这一问题而出现的
jsx
–>VDOM对象模型
-->diff
–>patch补丁对象
- Vue中提供了一个render,通过creatElement来生成VNode
- Vue中的jsx需要被解析为VDOM对象模型
- 当dom结构比较复杂的时候,需要模拟VDOM就会变得复杂,而jsx正是为解决这一问题而出现的