vue3思想及源码总结归纳1(尤雨溪解读)

109 阅读1分钟

虚拟dom

vue1.PNG

虚拟dom是利用js对象去表示真实dom

vue3首先利用render函数把真实dom转换成虚拟dom,然后挂载到dom,最后浏览器显示

组件更改

vue重新调用render函数,创建新的虚拟dom,并和旧节点进行对比,再重新挂载到dom

vue2.PNG

下面是vue3三个核心模块

响应式模块(Reactivity Module)

允许创建js响应式对象,并且可以观察它们的变化,当使用到这些对象,会跟踪它们

编译器模块(Compiler Module)

把HTML模板编译成渲染函数 (可以发生在浏览器运行和vue的构建)

渲染模块(Render Module)

页面渲染分三个模块

vue3.PNG

组件执行过程

组件包括template模板和响应式对象 1、编译器模块把HTML转换成render函数 2、利用响应式模块初始化响应式对象 3、渲染模块调用render函数(引用了响应式对象),观察响应式对象的变化,render函数返回一个虚拟dom节点 4、用虚拟dom创建web页面

当响应式对象发生变化时

响应式对象由于是被监视的,再次调用render函数生成新虚拟dom,新旧虚拟dom重新发送到补丁函数patch phase中,最后更新页面

vue4.PNG