更新日志

v2.0.0

2019-06-12

主要变动

  • 增加四个新组件
  • 增加数十个 API
  • 优化无障碍访问
  • 全新的卡片风格文档,支持文档搜索
  • 所有组件支持通过less变量自定义样式
  • 调整了部分不合理的命名,废弃少量 API

新组件

在 2.0 版本中,我们引入了社区中呼声最高的四个组件,分别是:

  • Image 图片,类似于小程序原生的 Image 标签,支持多种图片裁剪模式
  • IndexBar 索引栏,通讯录中的字母索引栏,用于长列表快速索引
  • Skeleton 骨架屏,在待加载区域展示的占位区块,提供界面加载过程中的过渡效果
  • DropdownMenu 下拉菜单,用于列表的分类选择、筛选及排序更新日志  - 图1

新文档

文档方面,我们重新设计了文档站点,用卡片的方式组织段落,更加直观。对一些较为复杂的组件,我们对示例进行细粒度的拆分,添加更多的用法介绍,以帮助大家更快地上手使用。

此外,文档站点也支持了搜索版本切换

更新日志  - 图2

样式定制

移动端 UI 风格多变,对组件的可定制性要求较高。从 2.0 版本开始,Vant 中的所有组件都支持通过 Less 变量进行样式定制。同时我们新增了较多样式相关的 Props,便于快速定制组件风格。

更新日志  - 图3

更轻量

轻量化是 Vant 的核心开发理念之一。在过去一年多时间里,我们新增了若干个组件和数百项功能,而代码包体积从 1.0 版本的 169kb 降低到了 2.0 版本的 161kb(45kb gzipped),平均每个组件体积下降 13%,这主要得益于组件内部逻辑的重构和复用。

在未来的 Vue 3.0 版本中,会提供 Function-based API 这一更优的逻辑复用方式,预计能帮助 Vant 进一步优化代码包体积。

不兼容更新

2.0 版本中包含少量不兼容更新,主要是调整命名和移除个别属性。对于正在使用 1.x 版本的项目,请按照下方的列表依次检查,大部分项目可以无痛升级

Actionsheet
  • 重命名为ActionSheet
Button
  • 移除bottom-action属性,请使用squaresize代替
Field
  • 移除on-icon-click属性,请使用click-right-icon事件代替
  • icon属性重命名为right-icon
  • icon插槽重命名为right-icon
  • click-icon事件重命名为click-right-icon
GoodsAction
  • GoodsActionBigBtn重命名为GoodsActionButton
  • GoodsActionMiniBtn重命名为GoodsActionIcon
  • GoodsActionBigBtn移除primary属性,请使用type属性代替
Step
  • 移除icon属性
  • 移除title属性
  • 移除icon-class属性
  • 移除description属性
  • 移除message-extra插槽
Badge
  • BadgeGroup重命名为Sidebar
  • Badge重命名为SlidebarItem
Loading
  • 移除circle类型
  • 移除gradient-circle类型
Checkbox
  • 调整为flex布局,可能对原有布局产生影响
Radio
  • 调整为flex布局,可能对原有布局产生影响
Waterfall
  • 移除在 1.0 版本废弃的 Waterfall 组件,请使用List组件代替,或使用独立的@vant/waterfall包。

无障碍访问

对以下组件增加了无障碍访问的支持:

  • Accordion
  • Checkbox
  • Dialog
  • DropdownMenu
  • GoodsAction
  • List
  • NoticeBar
  • NumberKeyboard
  • Radio
  • Rate
  • Stepper
  • Tab
  • Slider
  • Switch

新特性

ActionSheet
  • 新增lock-scroll属性
  • 新增click-overlay事件
  • 新增close-on-click-action属性
  • 支持同时使用titleactions属性
Area
  • 支持reset方法传入code参数
Button
  • 新增icon属性
  • 新增loading-type属性
Checkbox
  • 新增icon-size属性
DatetimePicker
  • 新增filter属性
Field
  • 新增input插槽
  • 新增click事件
  • 新增clickable属性
  • 新增label-class属性
  • 优化输入体验,输入法拼写过程中不再会触发v-model更新
GoodsActionButton
  • 新增type属性
Icon
  • 支持Number类型的size属性
ImagePreview
  • 新增close-on-popstate属性
List
  • 优化滚动判断逻辑
Loading
  • 新增default插槽
  • 新增vertical属性
  • 新增text-size属性
  • 支持Number类型的size属性
Notify
  • 新增onClick选项
  • 新增onClose选项
  • 新增onOpened选项
NoticeBar
  • 新增left-icon插槽
  • 新增right-icon插槽
PasswordInput
  • 新增gutter属性
Picker
  • 支持惯性滚动
  • 新增toolbar-position属性
Popup
  • 新增click事件
  • 新增duration属性
Radio
  • 新增icon-size属性
Rate
  • 新增gutter属性
  • 支持String类型的size属性
  • 新增clearable属性
  • 新增left-icon属性
  • 新增right-icon属性
  • 新增right-icon插槽
  • 优化输入体验,输入法拼写过程中不再会触发v-model更新
Slider
  • 新增drag-start事件
  • 新增drag-end事件
Steps
  • 新增inactive-icon属性
  • 新增inactive-icon插槽
Stepper
  • 支持Number类型的input-width属性
SubmitBar
  • 新增tip-icon属性
  • 新增suffix-label属性
SwipeCell
  • 支持自动计算left-widthright-width
Switch
  • 加载图标颜色现在会跟随背景色变化
SwitchCell
  • 新增border属性
  • 新增cell-size属性
Sku
  • 新增preview-open事件
  • 新增preview-close事件
Tab
  • 新增border属性
  • 优化animated动画性能
  • 修复开启animated后高度错误的问题
Tabbar
  • 新增route属性
  • 新增border属性
  • 新增inactive-color属性
TabbarItem
  • 新增name属性
Toast
  • 新增onOpened选项
Uploader
  • 新增上传区域默认样式
  • 新增delete事件
  • 新增upload-text属性
  • 新增max-count属性
  • 新增preview-size属性
  • 新增preview-image属性
  • 支持通过v-model绑定文件列表
  • oversize事件增加detail参数

后续计划

我们计划在今年下半年推出 VantWeapp 1.0 版本,目标是对标 Vant 2.0 版本,将大部分新组件和新功能同步到小程序端。

同时,Vant 3.0 版本也在酝酿当中,不出意外的话,3.0 版本会基于 Vue 3.0 实现,并争取和 Vue 3.0 同期发布

对于 Vant 1.x 版本,后续会进入维护期,跟进问题修复,但不再引入功能性改动。

更新日志  - 图4

更新日志  - 图5