前言,先学习vue2.x,很多2.x的内容还保留着;先学TypeScript,vue3.0是用TS改写的,想知道为什么,一定要学TS。为什么要学习vue3.0?性能比vue2.x快1.2-2倍按需编译,比vue2.x更小CombinedAPI(类似ReactHook)更好的TS支持暴露自定义渲染API更高级的组件vue3.0是如何变得更快的?vue2.x中优化虚拟dom的diff方法就是进行全量比较。而vue3.0增加了静态标签。在与上一个虚拟节点进行比较时,只比较有patchflag的节点,通过flag的信息可以知道当前要比较的节点的具体内容。举个例子,下面是一段代码。
Label
{{msg}}
标签
,是放在render函数外面的。所以这只会在全局创建一次,因此性能会得到显着提升。静态改进cacheHandlers(事件监听缓存)默认情况下,一个onClick事件会被当做一个动态绑定,所以每次都会跟踪它的变化,但是因为是同一个函数,所以不需要跟踪变化,而且它会直接缓存,重复使用即可。好的,让我们比较启用事件侦听器缓存前后。如果没有开启事件监听缓存,我们会看到有一个静态标记,所以每次都会跟踪。未启用Enableeventlistenercache在eventlistenercache前打勾以启用它。我们看到,如果没有静态标记,就没有比较跟踪,并且性能会提高。打开