这是我参与8月更文挑战的第29天,活动详情查看: 8月更文挑战
Vue.js 3.0并没有沿用Vue.js 2.x版本的代码,而是从头重写了,代码采用TypeScript进行编写。
新版的API全部采用普通函数,在编写代码时可以享受完整的类型推断。
Vue.js 3.0具有以下8个亮点。
- 更好的性能
Vue 3.0重写了虚拟DOM的实现,并对模板的编译进行了优化,改进了组件初始化的速度,相比Vue 2.x,更新速度和内存占用方面都有显著的性能提升。
- Tree-shaking支持
对无用的模块进行“剪枝”,仅打包需要的,减少了产品发布版本的大小。Vue 3.0支持按需引入,而在Vue 2.x中,即使用不到的功能也会打包进来。
- 组合AP1(Composition API)
Vue 2.x使用mixin来复用功能,但mixn存在的问题是:如果用多了,则很难知道某个功能是从哪个mixin混入的。此外,mixin的类型推断也很差。Vue 3.0中新增的Composition API可以完美地替代mixin,让用户可以更灵活且无副作用地复用代码,且Composition API可以很好地进行类型推断。Composition API解决了多组件间逻辑重用的问题。
- 碎片(Fragmen)
Vue 2x的组件需要有一个唯一的根节点,而在Vue 3.0中,这成了历史,组件模板不再需要单个的根节点了,可以有多个节点。
- 传送(Teleport)
有时组件模板的一部分在逻辑上属于该组件,而从技术角度来看,最好将模板的这一部分移动到DOM中Vue应用程序之外的其他位置,使用Telepot内置组件可以很容易地实现这个需求。
- 悬念(Suspense)
Suspense内置组件可以在嵌套层级中等待嵌套的异步依赖项,支持async setup(),支持异步组件。
- 更好的TypeScript支持
Vue 3.0的代码库完全采用TypeScript编写,具有更好的类型支持。前端开发人员现在可以采用TypeScript开发Vue的应用,而无须担心兼容性的问题,结合支持Vue 3.0的TypeScript插件。
开发更加高效,并可以拥有类型检查、自动补全等功能。
- 自定义渲染器API
使用自定义渲染器API,用户可以尝试与第三方库集成,如编写WebGL自定义渲染器。 需要注意的是,Vue3.0目前并不支持IE11。