Vant 是有赞前端团队开源的一套轻量、可靠的移动端组件库。
历经八个月时长的开发,Vant 3.0 终于和你们正式见面咯。在本次迭代中,咱们的主要工做是基于 Vue 3 重构整个代码仓库和周边生态,并发布 Vant 3.0、Vant Cli 3.0 和 Vant Use 1.0。前端
按照惯例,咱们先简单回顾一下 Vant 开源至今的成绩:react
Vue 3 带来了许多激动人心的新特性,好比 Composition API、emits Option 和 Teleport。在 Vant 3.0 中,咱们全面拥抱了 Vue 3 带来的各类变化,完成下列改造:git
重构完成后,组件之间能够基于 Composition API 进行逻辑复用,代码的可压缩性也有所提高。与 Vant 2.12 版本进行对比,能够看到 Vant 3.0 的 JS 体积降低了 16.6%,Gzip 后体积降低至 67.5kb。github
Vant 3.0 中包含 3 个全新的组件,分别是:npm
考虑到大部分开发者仍然在使用 Vue 2 进行开发,咱们在 Vant 2 中同步实现了以上三个组件,你们能够升级到 Vant 2.12 版本进行使用。小程序
Vant Use 从 Vant 中沉淀出的 Composition API 库。除了提供经常使用的 Composition API 外,Vant Use 也会将某些组件的逻辑抽离出来,让开发者在使用组件逻辑的同时,可以彻底自定义组件的展示形式。微信小程序
下面是一个简单的例子,咱们将 CountDown 组件的倒计时逻辑抽象为 useCountDown
方法,功能与 CountDown 组件基本等价,但使用起来更加灵活,咱们能够自定义倒计时的 UI 样式,或者经过 computed
对倒计时进行预处理。缓存
Vant Use 仍然处于早期阶段,在将来的演进过程当中,咱们会继续抽离 Vant 组件内部的通用逻辑,并下沉到 Vant Use 中。微信
Vant Cli 是 Vant 底层的组件库构建工具,经过 Vant Cli 能够快速搭建一套功能完备的 Vue 组件库。在 Vant Cli 3.0 中,咱们对全部底层依赖进行了大版本升级,在支持 Vue 3 的同时,提供更流畅的开发体验。babel
在建立 vant-cli
工程时,你能够自由选择基于 Vue 2 或者 Vue 3 进行组件库开发:
Vant Demo 是 Vant 官方提供的示例工程合集,在本次迭代中,咱们新增了 2 个示例工程,分别演示:
许多喜欢尝鲜的小伙伴已经在使用 Vite 进行开发了,在使用 Vite 的过程当中,常常令你们困惑的一点是,如何在 Vite 中进行按需引入 Vant 组件。在 Vue Cli 中,咱们能够经过 babel-plugin-import 插件实现按需引入,但在 Vite 中没法使用该插件。
其实在 Vite 中无须考虑按需引入的问题。Vite 在构建代码时,会自动经过 Tree Shaking 移除未使用的 ESM 模块。而 Vant 3.0 内部全部模块都是基于 ESM 编写的,自然具有按需引入的能力。现阶段遗留的问题是,未使用的组件样式没法被 Tree Shaking 识别并移除,后续咱们会考虑经过 Vite 插件的方式进行支持。
目前,Vant 官网默认展现 Vant 2 的 API 文档,你能够经过官网右上角的版本切换按钮访问 Vant 3 的文档,也能够 👉 点此访问。
同时,Vant 的 npm latest 标签也保持在 v2 版本,这意味着使用 npm install vant
命令仍会安装 Vant 2,而安装 Vant 3 须要使用 npm install vant@next
命令。在 Vue 的默认文档版本和 npm 标签切换为 v3 后,咱们也会同步进行切换。
从现有 Vant 2 项目升级,请参考 🚀 升级指南。
将来 6 ~ 12 个月内,咱们会保持 Vant 2 和 Vant 3 的功能同步更新。随着 Vue 3 的普及,咱们会逐步下降 Vant 2 的维护频率,并将工做重心转移到 Vant 3 上。
另外,除了官方维护的 Vue 版本和微信小程序版本,Vant 也有由社区的小伙伴们发起和维护的 React 版本和支付宝小程序版本,欢迎你们一块儿参与建设 💪
不平凡的 2020 年即将过去,但愿 Vant 能给你们的工做带来一点点的帮助,咱们明年再会。