Vue使用了Proxy替换了Object.defineProperty,重构了Vue的响应式系统,解决了Vue2.x中存在的响应性问题
-
可的直接监听数组类型的数据变化
-
监听的目标为对象本身,不需要像Object.defineProperty一样遍历每个属性,有一定的性能提升
-
更强大的拦截功能,拦截器包括get、set、has、deleteProperty、ownKeys、getOwnPropertyDescriptor、defineProperty、preventExtensions、getPrototypeOf、isExtensible、setPrototypeOf、apply、construct13种
3.引入了Composition API
vue3.0中引入了composition API ,专门用于解决功能、数据和业务分散的问题,使项目更益于模块化开发以及维护
她的核心使setup函数,这样做的好处是当应用变得复杂一点时,我可以将功能对应的数据和业务逻辑抽离出来,需要是import,以至于更好的逻辑复用和代码组织
4.优化了Virtual DOM
- 模板编译时的优化,将一些静态节点编译成常量
- slot优化,将slot编译为lazy函数,将slot的渲染的决定权交给子组件
- 模板中内联事件的提取并重用,(原本每次渲染都会重新生成内联函数)
5.更好的 Tree shaking
尤雨溪:Tree-shaking 其实就是把无用的模块进行“剪枝”,很多没有用到的API就不会打包到最后的包里
6.script setup
script setup是Vue3.2新增的语法糖,消除我们在使用compositionAPI时的心智负担,让我们没有理由不使用compositionAPI
优势:
- 更简洁
- 能够使用纯TS声名props和抛出事件
- 更好的运行性能和IDE类型推断性能