Vue.js 3.0 中很多功能的设计需要谨遵规范。例如,想要使
用 Proxy 实现完善的响应系统,就必须从 ECMAScript 规范入手,而
Vue.js 的模板解析器则遵从 WHATWG 的相关规范
创建虚拟DOM就是为了更好将虚拟的节点渲染到页面视图中,所以虚拟DOM对象的节点与真实DOM的属性一一照应
命令式更加关注过程,而声明式更加关注结果
命令式在理论上可以做到极致优化,但是用户要承受巨大的心智负担;而声明式能够有效减轻用户的心智负担,但是性能上有一定的牺牲,框架设计者要想办法尽量使性能损耗最小化。
虚拟 DOM 的意义就在于使找出差异的性能消耗最小化
注意注释代码 /#PURE/,其作用就是告诉 rollup.js,对于
foo 函数的调用不会产生副作用,你可以放心地对其进行 Tree-
Shaking(移除不会调用的函数)
组件就是一组 DOM 元素的封装,这组 DOM 元素就是组件要渲染的内容,
我们可以定义一个函数来代表组件,而函数的返回值就代表组件要渲染的内容
组件的实现依赖于渲染器,模板的编译依赖于编译器
渲染器的作用之一就是寻找并且只更新变化的内容
编译器和渲染器之间是存在信息交流的,它们互相配合使得性能进一步提升,而它们之间交流的媒介就是虚拟 DOM 对象