每天背诵记忆一道前端面试题,每天进步一小点,坚持下来高薪工作离你不远。
问题:与Vue2相比,Vue3有哪些新特性?
答案:
Vue3.0改进主要在以下几点:
更快
○虚拟DOM重写
■期待更多的编译时提示来减少运行时开销,使用更有效的代码来创建虚拟节点。组件快速路径+单个调用+子节点类型检测
●跳过不必要的条件分支
●JS引擎更容易优化
○优化slots的生成
■vue3中可以单独重新渲染父级和子级
●确保实例正确的跟踪依赖关系
●避免不必要的父子组件重新渲染
○静态树提升
■使用静态树提升,这意味着Vue3的编译器将能够检测到什么是静态的,然后将其提升,从而降低了渲染成本。
●跳过修补整棵树,从而降低渲染成本
●即使多次出现也能正常工作
○静态属性提升
使用静态属性提升,Vue3打补丁时将跳过这些属性不会改变的节点。
○基于Proxy的响应式系统
Vue2的响应式系统使用Object.defineProperty的getter和setter。Vue3将使用ESProxy作为其观察机制,这将会带来如下变化:
●组件实例初始化的速度提高%
●使用Proxy节省以前一半的内存开销,加快速度,但是存在低浏览器版本的不兼容
●为了继续支持IE11,Vue3将发布一个支持旧观察者机制和新Proxy版本的构建
更小
●通过TreeShaking优化核心库体积。Vue2将大量的API挂载在Vue对象的原型上,难以实现TreeShaking。
更容易维护:TypeScript+模块化
●Vue3将带来更可维护的源代码。它不仅会使用TypeScript,而且许多包被解耦,更加模块化。
更加友好
●跨平台:编译器核心和运行时核心与平台无关,使得Vue更容易与任何平台(Web、Android、iOS)一起使用
更容易使用
改进的TypeScript支持,编辑器能提供强有力的类型检查和错误及警告。Vue2将所有属性都放在了this对象上,难以推倒组件的数据类型
○更好地调试支持
○独立的响应化模块
○CompositionAPI
Vue3的Template支持多个根标签,Vue2不支持
Vue3中,Mixin不再推荐使用,filters已经被遗弃