vue.js3 是一个声明式的 UI 框架,意思是说用户在使用 Vue.js 开发页面时是声明式地描述 UI 的。

vue3 有三个模块:

  • 响应式模块:允许我们创建 JavaScript 响应对象,并可以观察其变化,当使用这些对象的代码运行时,它们会被跟踪,因此,如果响应对象发生变化,它们可以在以后运行。
  • 编译器模块:它知道如何获取 HTML 模板,这可能在浏览器运行时发生,但在构建 Vue 项目时更常见。
  • 渲染模块

虚拟DOM其实就是用 JS 对象来描述真实的 DOM 结构。

渲染器

渲染器的作用就是把虚拟DOM渲染为真实DOM。

渲染器的精髓都在更新节点的阶段。对于渲染器来说,它需要精确地找到vnode对象的变更点并且只更新变更的内容。

编译器

编译器的作用其实就是将模板编译为渲染函数。

组件的实现依赖于渲染器,模板的编译依赖于编译器,并且编译后生成的代码是根据渲染器和虚拟DOM的设计决定的,因此 Vue.js 的各个模块之间是互相关联、互相制约的,共同构成一个有机整体。