v2.0.0

2019-06-12

主要变动

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

新组件

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

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

v2.0.0 - 图1

新文档

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

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

v2.0.0 - 图2

样式定制

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

v2.0.0 - 图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 版本,后续会进入维护期,跟进问题修复,但不再引入功能性改动。

v2.0.0 - 图4

v2.0.0 - 图5