Vue3.0 vs Vue2.x (一)

262 阅读1分钟

前言

记录下下笔记,详情请点击以下链接哦
B站上李南江老师课程: www.bilibili.com/video/BV14k…

Vue3.0 六大亮点

  • Performance: 性能比Vue2.x快1.2~2倍
  • Tree shaking support: 按需编译,体积比Vue2.x更小
  • Composition API: 组合API(类似React Hooks)--最大亮点
  • Custom Render API: 暴露了自定义渲染API
  • Fragment,Teleport(Protal), Suspense: 更先进的组件

Vue3.0 是如何变快的?

  • diff算法优化

    • Vue2.x中的虚拟dom是进行全量的对比
    • Vue3.0新增了静态标记(PatchFlag),在与上次虚拟节点进行对比时,是对比带有patch flag的节点,并且可以通过flag的信息得知当前节点要对比的具体内容
  • hoistStatic 静态提升

    • Vue2.x中无论元素是否参与更新,每次都会重新创建
    • Vue3中对于不参与更新的元素,只会被创建一次,之后会在每次渲染时被不停的复用
  • cacheHandlers事件侦听器缓存

    • 默认情况下onClick会被视为动态绑定,所以每次都会去追踪它的变化,但是因为是同一个函数,所以没有追踪变化,直接缓存起来复用即可
  • ssr渲染

    • 当有大量静态的内容时,这些内容会被当作纯字符推进一个buffer里面,即使存在动态的绑定,会通过模版插值嵌入进去

    vue3转化代码: vue-next-template-explorer.netlify.app/