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 核心仍然通过一个简单的<script>标签来使用,但其内部结构已经被重写,解耦成一个个模块的集合。新的架构为源码提供了更好的可维护性,并允许终端用户通过 tree-shaking 的形式来减少一半的运行时体积。

高级算法

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

核心运行时提供了一系列 API,用于针对不同渲染目标(如native moileWebGL终端)的自定义容器。默认的 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倍!」还怕你的老板不提拔你?同办公室的女同事不仰慕你?

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335