写点什么

Vant 1.0 正式发布:轻量、可靠的移动端 Vue 组件库

  • 2020-03-11
  • 本文字数:1419 字

    阅读完需:约 5 分钟

Vant 1.0 正式发布:轻量、可靠的移动端 Vue 组件库

Vant 是有赞前端团队维护的移动端 Vue 组件库,提供了一整套 UI 基础组件和业务组件。通过 Vant 可以快速搭建出风格统一的页面,提升开发效率。

一、关于 Vant 1.0

距离 Vant 首次发布刚好过去了半年时间,在这半年时间里 Vant 团队广泛吸纳社区的反馈和建议,持续对组件进行打磨、优化,使得 Vant 逐渐成长为一个轻量、可靠的移动端 Vue 组件库。


在这个时间点上我们决定发布 Vant 的 1.0 正式版,希望未来有更多小伙伴能够参与到 Vant 的开发和使用中来。


GitHub 地址:github.com/youzan/vant(点击「阅读原文」直达)

二、现有组件

三、开发理念

轻量化

作为移动端组件库, Vant 一直将轻量化作为核心开发理念。为了平衡日益丰富的功能和轻量化之间的矛盾关系,我们尝试了很多的优化方式,包括支持组件按需加载、公共模块复用、组件编译流程优化等。


在应用一系列的优化手段之后,目前 Vant 的组件平均体积仅有 8.8KB,Uglify + Gzip 后约 1KB。作为对比, mint-ui 的组件平均体积为 15.2KB,某些组件库的组件平均体积甚至在 25KB 以上。


Vant 之所以能保持如此小的组件体积,主要归功于我们独特的组件编译方式。目前主流的组件编译方式是通过 webpack 搭配 vue-loader 对每个组件进行编译,为每个组件生成一个打包后 JS 文件。这样的做法会产生大量的冗余代码,比如 webpack 内置的模块化代码、vue-loader 内置的 normalize 函数、重复引入的 babel helper 等等,而我们不希望在组件的编译结果中引入这些冗余代码。


一开始我们尝试通过使用 rollup 和 rollup-plugin-vue 去解决上述的问题,但很快我们就发现了更为直接的方式,即通过官方提供的 vue-template-compiler 和 babel 对组件进行编译,这样的方式简单纯粹,编译出的代码非常干净,细节在此不做赘述,有兴趣的同学可以看下 Vant 中构建部分的源码。

快速迭代

另外一个很重要的理念是快速迭代。有赞前端团队几十个工程师每天都在用的就是现在你看到的 GitHub 上这个版本,我们并没有一个所谓的“内部版”。同时,出于对自己名誉的珍视,我们不是简单地把它开源了事,而是把它当做一款技术产品去维护,不单单自己用的爽,也要让别人好用,因此我们会保持对社区需求的快速响应、对 bug 及时跟进并修复。


迄今为止项目 commit 总数超过 1600 次,解决 issue 300 个,合并 Pull Request 400 个,发布 90 次,基本上保持了一周 1 ~ 2 次的发布节奏。这里面包含了很多社区开发者的付出,感谢他们对 Vant 作出的贡献~ 在未来我们也会继续保持这样的开发节奏,为社区输出更好的开源产品。

生态化

除了提供组件以外,我们也在为丰富 Vant 的开发生态做很多尝试,希望能覆盖各个场景下的开发需求,为大家提供便利。下面是我们现有的一些生态或能力:


  • 基于 vue-cli 的脚手架 vue-cli-template-vant

  • 支持 nuxt 服务器端渲染

  • 支持 Typescript 类型检测

  • 支持 i18n 多语言定制

  • 支持通过 postcss 插件进行主题定制

  • 官方 Demo 仓库 - vant-demo

  • 基于相同视觉规范的小程序组件库 - zanui-weapp

  • 开源社区的移动商城示例项目 - vant–mobile-mall


在生态化方面我们还有很多需要补齐的方面,比如提供对 rem 的支持、vscode 代码提示插件等,这些将会是我们 18 年尝试的方向。

四、最后

开源项目的进步离不开社区的贡献,非常感谢过去对 Vant 提出 PR 和意见的所有人,尤其感谢社区 @chuangbo、@qianzhaoyan、@GeoffZhu 等同学的付出。希望未来能有更多的同学加入到 Vant 的开发中来。如果你对有赞的前端团队感兴趣,也欢迎加入我们一起玩耍~


2020-03-11 22:19893

评论

发布
暂无评论
发现更多内容

永洪BI、瓴羊Quick BI领衔国产BI工具

巷子

游戏版《西部世界》来了!NPC全由AI操控,行动自如有理想和记忆,基于最新GAEA技术系统打造

Openlab_cosmoplat

AI 游戏 开源社区

Spring依赖注入Bean类型的8种情况,你学废了吗?

Java永远的神

spring 源码 程序员 后端 java面试

就在明天!用友企业数智化财务峰会落地广州,聚焦实现业财合一新价值

用友BIP

工信部数据库适配验证中心项目验收通过 柏睿数据参与共建

科技热闻

pulsar 报错源码排查:"Not enough non-faulty bookies available"

李code

源码 pulsar 故障恢复 参数调优 白话源码

TitanIDE:云原生开发到底强在哪里?

行云创新

ide 云原生 云开发

阿里云高级技术专家林立翔:基于阿里云弹性GPU服务的神龙AI加速引擎,无缝提升AI训练性能

云布道师

阿里云 AI

VisBug:助力前端开发的浏览器插件

南城FE

CSS 效率工具 前端 浏览器 插件

经过小折腾,可算是把 Code Coverage API 用上了

HoneyMoose

【iOS逆向与安全】利用IDAPython插件提高反汇编和逆向工程效率

小陈

安全 逆向 iOS逆向 ios安全 逆向分析

用AI回忆起曾被忘却的语言

白洞计划

AI

又发现一个开源商城项目,谷粒商城外又多了个选择

马丁玩编程

币安/欧意合约自动跟单软件开发源代码

开发v-hkkf5566

设计师的魔法:让你的冰冷设备即刻变成迪士尼

鼎道智联

设计 动效设计

《云原生架构容器&微服务优秀案例集》惊喜来袭

阿里巴巴云原生

阿里云 容器 微服务 云原生

如何高效搭建资产管理平台?众安科技告诉你答案是图技术

NebulaGraph

图数据库

智慧公厕:未来城市的必备设施

光明源智慧厕所

物联网 智慧城市

百图生科AIGP平台发布:提供多种蛋白质生成能力,邀伙伴联手开发“新物种”

硬科技星球

ShareSDK iOS端如何实现微信分享链接与登录

MobTech袤博科技

AI大模型加速升级,数据和隐私何以为安?

博文视点Broadview

GPT-4 可以开始测试了

HoneyMoose

Three.js 进阶之旅:全景漫游-初阶移动相机版

dragonir

JavaScript 前端 three.js

扒站软件:SiteSucker汉化激活

真大的脸盆

Mac Mac 软件 网站下载 下载网站工具

百度安全助力小度智能屏通过中国泰尔实验室适老化技术测试认定

百度安全

智能硬件

MobTech|如何选择应用内广告SDK产品

MobTech袤博科技

龙蜥白皮书精选:敏捷开发场景下的调度器热升级 SDK

OpenAnolis小助手

敏捷开发 sdk 白皮书 调度器 龙蜥社区

记录丨阿里云校招生的成长经历

阿里巴巴云原生

阿里云 云原生 校招

Dubbo + ZooKeeper丨如何解决线上故障排查链路长的难题

阿里巴巴云原生

阿里云 开源 云原生 dubbo Zookeepe

Redis高频40问

程序员大彬

Java Redis redis 底层原理

openEuler开源新项目,嵌入式实时虚拟机ZVM介绍

openEuler

Linux 操作系统 虚拟机 嵌入式 openEuler

Vant 1.0 正式发布:轻量、可靠的移动端 Vue 组件库_文化 & 方法_有赞技术_InfoQ精选文章