速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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:19791

评论

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

SpringBoot实现异步任务Async及异步任务实现发送邮件

宁在春

springboot 异步 7月月更 邮件发送

elasticsearch实战三部曲之二:文档操作

程序员欣宸

Java Elastic Search 7月月更

C# 之 $ – 字符串内插

陈言必行

7月月更

设计消息队列存储消息的MySQL表格

joak

五、HikariCP源码分析之初始化分析二

阿白

数据库 源码解析 HikariCP 源代码 连接池

六、HikariConfig配置解析

阿白

数据库 源码解析 HikariCP 源代码 连接池

互联网基石:TCP/IP四层模型,由浅入深直击原理!

wljslmz

计算机网络 TCP/IP 网络技术 OSI模型 签约计划第三季

高性能数据访问中间件 OBProxy(三):问题排查和服务运维

OceanBase 数据库

十一、HikariCP源码分析之HouseKeeper

阿白

数据库 源码解析 HikariCP 源代码 连接池

你必须知道的一些JVM技术点

Java学术趴

7月月更

Discourse 自定义头部链接(Custom Header Links)

HoneyMoose

一、HikariCP源码分析之获取连接流程一

阿白

数据库 源码解析 HikariCP 源代码 连接池

MIT TR50榜单公布 《麻省理工科技评论》评价毫末智行是AI自动驾驶界的颠覆势能

科技大数据

智能车

资源集合

贾献华

7月月更

桌面软件开发框架大赏

声网

软件开发

新型LaaS协议Elephant Swap给ePLATO提供可持续溢价空间

股市老人

区块链,得这样练

CECBC

八、HikariCP源码分析之ConcurrentBag一

阿白

数据库 源码解析 HikariCP 源代码 连接池

SQL 改写系列七:谓词移动

OceanBase 数据库

Prometheus 启动时被禁止的功能特性

耳东@Erdong

Prometheus Feature 7月月更

关于JVM的内存模型

Java学术趴

7月月更

七、HikariConfig初始化分析

阿白

数据库 源码解析 HikariCP 源代码 连接池

数据安全建设

奔向架构师

数据资产 7月月更

九、HikariCP源码分析之ConcurrentBag二

阿白

数据库 源码解析 HikariCP 源代码 连接池

Bootstrap 模态框Modal【前端Bootstrap框架】

恒山其若陋兮

7月月更

三、HikariCP源码分析之获取连接流程三

阿白

数据库 源码解析 HikariCP 源代码 连接池

新型LaaS协议Elephant Swap给ePLATO提供可持续溢价空间

BlockChain先知

推荐 7 个学习 Web3 的开源资源

devpoint

blockchain Solidity web3 7月月更

四、HikariCP源码分析之初始化分析一

阿白

数据库 源码解析 HikariCP 源代码 连接池

二、HikariCP源码分析之获取连接流程二

阿白

数据库 源码解析 HikariCP 源代码 连接池

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