vant+vue
Vant 是有赞前端团队维护的移动端 Vue 组件库,提供了一整套 UI 基础组件和业务组件。通过 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 代码提示插件等,这些将会是我们 2023年05月15日尝试的方向。
四、最后
开源项目的进步离不开社区的贡献,非常感谢过去对 Vant 提出 PR 和意见的所有人,希望未来能有更多的同学加入到 Vant的开发中来。如果你对有赞的前端团队感兴趣,也欢迎加入我们一起玩耍~
","gnid":"9d273ca6a6c1c2142","img_data":[{"flag":2,"img":[{"desc":"","height":"1000","title":"","url":"https://p0.ssl.img.360kuai.com/t0185058863c38656c6.png","width":"1000"},{"desc":"","height":"2198","title":"","url":"https://p0.ssl.img.360kuai.com/t0120831b39a4a8eb1b.png","width":"2238"}]}],"original":0,"pat":"art_src_0,fts0,sts0","powerby":"hbase","pub_time":1684130683000,"pure":"","rawurl":"http://zm.news.so.com/20df27ade43f4f3acead1c1be7936064","redirect":0,"rptid":"793fb0874455d588","rss_ext":[],"s":"t","src":"大凡","tag":[{"clk":"ktechnology_1:github","k":"github","u":""}],"title":"vant_轻量、可靠的移动端Vue
隗苗巧3766vant ui怎么实现分页效果 -
宗兰彼15822799429 ______ <van-tabs v-model="active"><van-tab :title="...">内容1</...><van-tab :title="...">内容2</...><van-tab :title="...">内容3</...></...>
隗苗巧3766什么是Vue.js框架 为什么选择它 -
宗兰彼15822799429 ______ Vue.js是一个交互性较强的前端框架,去Vue.js官方中文网,首页会展示一段小视频,里面说明了Vue.js的简单又基本的用法. 登录前端库或GitHub,Vue的热门度,正义极快的速度增长,成为目前最流行的框架,没有之一.当然,我只是说,就...
隗苗巧3766怎么让atom编辑器 高亮显示*.vue -
宗兰彼15822799429 ______ 安装这个包 language-vue 具体步骤:打开Settings => Install 搜索框里输入vue 点击Package 安装language-vue
隗苗巧3766VT和VANT36.5是什么关系? -
宗兰彼15822799429 ______ VANT36.5是VT的前身,也可以说是升级版
隗苗巧3766vue3中vue.config.js怎么配置jquery -
宗兰彼15822799429 ______ 只需要 npm install jquery --sava即可
隗苗巧3766vue 怎么创建组件及组件使用方法 -
宗兰彼15822799429 ______ 使用vue.js构造modal组件的方法是使用 v-model 指令: v-model 指令在表单控件元素上创建双向数据绑定.根据控件类型它自动选取正确的方法更新元素. 比如,多个勾选框,绑定到同一个数组: <input type="checkbox" id="jack" value=...
隗苗巧3766前端:Vue.js框架是什么,为什么选择它 -
宗兰彼15822799429 ______ 通过尽可能简单的API实现响应的数据绑定和组合的视图组件 (摘自Vue.js官网) Vue的数据驱动:数据改变驱动了视图的自动更新,传统的做法你得手动改变DOM来改变视图,vuejs只需要改变数据,就会自动改变视图,一个字:爽.再也不用...
隗苗巧3766vue怎么在一个事件中监听另一个事件的变化 -
宗兰彼15822799429 ______ vue.js移除绑定的点击事件的方法: 可以用 v-on 指令监听 dom 事件: greet 绑定了一个单击事件处理器到一个方法 greet.下面在 vue 实例中定义这个方法: var vm = new vue({ el: '#example', data: {
隗苗巧3766web前端框架选型疑问?请问angularJS,React,vue选哪个好 -
宗兰彼15822799429 ______ Vue 开发效率最高数据展示,以及数据操作推荐使用angular+bootstrap
隗苗巧3766vue怎么导入自己写的js文件 -
宗兰彼15822799429 ______ 1. 首先我们要改变我们要映入的外部js文件,改成以下这个格式.<br><br><img src="https://pic.wenwen.soso.com/pqpic/wenwenpic/0/20220730070408-847965190_jpeg_562_295_18567/0"/><br><br>代码:<pre class="html">function ...