[前端]Vue3.0主要做了哪些优化?

2022-10-05  本文已影响0人  半颗糖嘿

Vue3.0主要做了哪些优化?
①源码优化
源码优化的目的是让代码更易于开发和维护
源码的优化主要体现在monorepo(更好的代码管理方式)TypeScript(可以解决复杂场景类型的检查)
②源码体积优化
主要移除了一些冷门的feature,引入tree-sharking技术。
③数据劫持优化
Vue2.0中主要是通过Object.defineProperty这个API劫持的getter和setter。

Object.defineProperty(data,'val',{
  get(){
  },
  set(){
  }
})

其有如下缺点:
第一,Object.defineProperty这个API就是要预先知道要被拦截的key是什么。
第二,不能监听对象的新增属性和删除属性。
第三,对于这个嵌套层级比较深的对象,需要递归,会造成性能浪费。
Vue3.0中使用了Proxy API做数据劫持。

observed = new Proxy(data,{
  get(){
  },
  set(){
  }
})

④编译优化
Vue2.0中的patch阶段耗时相对较多。
Vue3.0通过在编译阶段优化编译的结果,实现运行时patch过程的优化;Vue3.0在编译阶段还包括了对Slot的编译优化、事件侦听、函数的缓存优化,并且在运行时重写diff算法。
⑤语法API优化:Composition API
其提供的帮助有:优化逻辑组织、优化逻辑复用

上一篇 下一篇

猜你喜欢

热点阅读