Vue3.0正式版我馋了,Composition-Api 真香

2020年9月19日北京凌晨,代号为One Piece的Vuejs 3.0 终于发布了。该完整版的开发周期长达两年多官方表示:尽管框架的某些子项目可能仍需要进一步的开发才能达到稳定状态(特别是 devtools 中的路由和 Vuex 集成),不过现在仍然是开始使用 Vue 3 启动新项目的合适时机。

如果还有人不知道新系统或者吐槽「新系统结构像意大利面,甚至说抄袭React」 ,小编只能说你真的不懂3.0的Vue好在哪?本篇文章整理了此次版本中更新的5大亮点,带你全面认知新系统。

试问,如果你正好有手上有正在做的Vue项目,而你正好采用了新版本将项目升级和重构,最后的成品KPI难道不香吗?

01分离内部模块

Vue3.0 核心仍然通过一个简单的

高级算法
编译器支持自定义 AST 转换,用于在构建时自定义(如,在构建时进行 i18n 操作)

核心运行时提供了一系列 API,用于针对不同渲染目标(如native moile、WebGL 或终端)的自定义容器。默认的 DOM 渲染器也使用这系列 API 构建。

@vue/reactivity 模块导出的功能,可以直接访问 Vue 的响应式系统。并且可以作为一个独立的包进行使用。它可以与其他模块解决方案配对使用(如 lit-html),甚至是在非 UI 场景中使用。

02用于解决规模问题的全新API

在 Vue 3.0 中,基于对象的 2.x API 基本没有变化,并引入了 Composition API 这套全新的API。Composition API旨在解决 Vue 在大规模应用场景中的痛点。其构建于响应式 API 之上,实现了类似于 React hook 的逻辑组成与复用,相较于 2.x 基于对象的 API 方式来说,拥有更加灵活的代码组织模式,以及更为可靠的类型推断能力。

Composition API同时还提供了适用于Vue 2.x 的版本,可通过**@vue/composition-api** 插件在项目中使用,目前已有适用于 Vue 2 和 Vue 3 的Composition API 实用的工具库。

举个例子

我们在工作的时候经常出现这种情况:随着业务复杂度越来越高,代码量会不断的加大。由于相关业务的代码需要遵循option 的配置写到特定的区域,导致后续的维护非常复杂,同时代码可复用性不高,一个页面组件经常写着写着就写到了三四百行去了。

这个时候,Composition API就可以解决这个问题。它为我们提供了reactive、watchEffect、computed、ref、toRefs、hooks等不同作用的函数去帮助我们。比如watchEffect ,其被称之为副作用,是立即执行传入的一个函数,可以响应式追踪其依赖,并在其依赖变更时重新运行该函数。

03性能提升

与Vue 2 相比,Vue 3在捆绑包大小(通过tree-shaking减轻了多达41%的重量),初始渲染(加快了多达55%的速度),更新(加快了133%的速度)和内存使用率方面(最多减少54%)表现出了显著的性能改进。

Vue 3中采用了「编译器信息虚拟DOM」的方法:针对模板编译器执行激进的优化并生成渲染函数代码,以提升静态内容,为绑定类型留下运行时提示。最重要的是,将内部的动态节点进行了扁平化处理,以减少运行时遍历的成本。因此用户可以两全其美,既可以通过模板优化编译器的性能,也能在需要时通过手动渲染功能直接控制。

04改进与TypeScript的兼容

Vue 3 的代码库完全采用 TypeScript 编写,具有自动生成、测试并构建类型声明的类型定义,因此它们总为最新。Composition API 可以很好的进行类型推断。Vetur,官方推出的 VSCode 插件,现已支持对模板表达式和 props 的类型检查,同时,Vue 3已全面支持 TSX

05ENDING

试问,当你在年终总结or述职or面试时加上这样一句话:

我,带领团队成员用最新版本的Vue完成了项目的重构,包括逻辑重构和语法升级,全面适配 Vue 3!打包的效率提升N倍!页面的响应速度提升N倍!」还怕你的老板不提拔你?同办公室的女同事不仰慕你?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值