+
+
+
+
+
+
+
+
+
+
+
+
+
自定义sku actions
+
+
+```
+:::
+
+### API
+
+| Attribute | Description | Type | Default | 必须 |
+|-----------|-----------|-----------|-------------|-------------|
+| v-model | 是否显示sku | Boolean | false | 是 |
+| sku | 商品sku数据 | Object | - | 是 |
+| goods | 商品信息 | Object | - | 是 |
+| goodsId | 商品id | String/Number | - | 是 |
+| hideStock | 是否显示商品剩余库存 | Boolean | false | 否 |
+| showAddCartBtn | 是否显示加入购物车按钮 | Boolean | true | 否 |
+| quota | 限购数(0表示不限购) | Number | 0 | 否 |
+| quotaUsed | 已经购买过的数量 | Number | 0 | 否 |
+| resetStepperOnHide | 窗口隐藏时重置选择的商品数量 | Boolean | false | 否 |
+| disableStepperInput | 是否禁用sku中stepper的input框 | Boolean | false | 否 |
+| stepperTitle | 数量选择组件左侧文案 | String | '购买数量' | 否 |
+| add-cart | 点击添加购物车回调 | Function(skuData: Object) | - | 否 |
+| buy-clicked | 点击购买回调 | Function(skuData: Object) | - | 否 |
+
+### slots
+sku组件默认划分好了若干区块,这些区块都定义成了slot,可以按需进行替换。区块顺序见下表:
+
+| 名称 | Description |
+|-----------|-----------|
+| sku-header | 商品信息展示区,包含商品图片、名称、价格等信息 |
+| sku-group | 商品sku展示区 |
+| extra-sku-group | 额外商品sku展示区,一般用不到 |
+| sku-stepper | 商品数量选择区 |
+| sku-messages | 商品留言区 |
+| sku-actions | 操作按钮区 |
+
+#### Data Structure
+#### sku对象结构
+```javascript
+"sku": {
+ // 所有sku规格类目与其值的从属关系,比如商品有颜色和尺码两大类规格,颜色下面又有红色和蓝色两个规格值。
+ // 可以理解为一个商品可以有多个规格类目,一个规格类目下可以有多个规格值。
+ "tree": [{
+ "k": "颜色", // skuKeyName:规格类目名称
+ "v": [{
+ "id": "30349", // skuValueId:规格值id
+ "name": "红色", // skuValueName:规格值名称
+ "imgUrl": "https:\/\/img.yzcdn.cn\/upload_files\/2017\/02\/21\/FjKTOxjVgnUuPmHJRdunvYky9OHP.jpg" // 规格类目图片,只有第一个规格类目可以定义图片
+ }, {
+ "id": "1215",
+ "name": "蓝色",
+ "imgUrl": "https:\/\/img.yzcdn.cn\/upload_files\/2017\/03\/16\/Fs_OMbSFPa183sBwvG_94llUYiLa.jpeg"
+ }],
+ "k_s": "s1" // skuKeyStr:sku组合列表(下方list)中当前类目对应的key值,value值会是从属于当前类目的一个规格值id
+ }, ...],
+ // 所有sku的组合列表,比如红色、M码为一个sku组合,红色、S码为另一个组合
+ "list": [{
+ "id": 2259, // skuId,下单时后端需要
+ "price": 100, // 价格(单位分)
+ "s1": "1215", // 规格类目k_s为s1的对应规格值id
+ "s2": "1193", // 规格类目k_s为s2的对应规格值id
+ "s3": "0", // 最多包含3个规格值,为0表示不存在该规格
+ "stock_num": 110 // 当前sku组合对应的库存
+ }, ...],
+ "price": "1.00", // 默认价格(单位元)后端单位暂时有点不统一
+ "stock_num": 227, // 商品总库存
+ "collection_id": 2261, // 无规格商品skuId取collection_id,否则取所选sku组合对应的id
+ "none_sku": false, // 是否无规格商品
+ "messages": [{ // 商品留言
+ "datetime": "0", // 留言类型为time时,是否含日期。“1”表示包含
+ "multiple": "0", // 留言类型为text时,是否多行文本。“1”表示多行
+ "name": "留言", // 留言名称
+ "type": "text", // 留言类型,可选id_no(身份证), text, tel, date, time, email
+ "required": "1" // 是否必填 “1”表示必填
+ }, ...],
+ "hide_stock": false // 是否隐藏剩余库存
+},
+```
+
+#### goods对象结构
+```javascript
+"goods": {
+ // 商品标题
+ "title": "测试商品",
+ // 默认商品sku缩略图
+ "picture": "https:\/\/img.yzcdn.cn\/upload_files\/2017\/03\/16\/Fs_OMbSFPa183sBwvG_94llUYiLa.jpeg?imageView2\/2\/w\/100\/h\/100\/q\/75\/format\/webp"
+},
+```
+
+#### 添加购物车和点击购买回调函数接收的skuData对象结构
+```javascript
+skuData: {
+ // 商品id
+ goodsId:"946755",
+ // 留言信息
+ messages: {
+ message_0:"12",
+ message_1:"",
+ ... // 有几个留言就有几条
+ },
+ // 另一种格式的留言,key不同
+ cartMessages: {
+ '留言1': 'xxxx',
+ ... // key是message的name
+ },
+ // 选择的商品数量
+ selectedNum:1,
+ // 选择的sku组合
+ selectedSkuComb: {
+ id:2257,
+ price:100,
+ s1:"30349",
+ s2:"1193",
+ s3:"0",
+ stock_num:111
+ }
+}
+```
diff --git a/docs/examples-docs/en-US/stepper.md b/docs/examples-docs/en-US/stepper.md
new file mode 100644
index 000000000..19df9b89d
--- /dev/null
+++ b/docs/examples-docs/en-US/stepper.md
@@ -0,0 +1,68 @@
+
+
+## Stepper
+
+### Install
+``` javascript
+import { Stepper } from 'vant';
+
+Vue.component(Stepper.name, Stepper);
+```
+
+### Usage
+
+#### Basic Usage
+
+:::demo Basic Usage
+```html
+
+
当前值:{{ stepper1 }}
+```
+:::
+
+#### Disabled
+通过设置`disabled`属性来禁用 stepper
+
+:::demo 禁用状态
+```html
+
+```
+:::
+
+#### Advanced Usage
+
+默认是每次加减为1,可以对组件设置`step`、`min`、`max`、`defaultValue`属性
+
+:::demo Advanced Usage
+```html
+
+
当前值:{{ stepper2 || 9 }}
+```
+:::
+
+### API
+
+| Attribute | Description | Type | Default | Accepted Values |
+|-----------|-----------|-----------|-------------|-------------|
+| min | 最小值 | `String | Number` | `1` | - |
+| max | 最大值 | `String | Number` | - | - |
+| defaultValue | Default | `String | Number` | `1` | - |
+| step | 步数 | `String | Number` | `1` | - |
+| disabled | 是否禁用 | `Boolean` | `false` | - |
+| disableInput | 是否禁用input框 | `Boolean` | `false` | - |
+
+### Event
+
+| Event | Description | 回调参数 |
+|-----------|-----------|-----------|
+| change | 当绑定值变化时触发的事件 | 当前组件的值 |
+| overlimit | 点击不可用的按钮时触发 | - |
diff --git a/docs/examples-docs/en-US/steps.md b/docs/examples-docs/en-US/steps.md
new file mode 100644
index 000000000..172fb68e2
--- /dev/null
+++ b/docs/examples-docs/en-US/steps.md
@@ -0,0 +1,137 @@
+
+
+## Steps
+
+### Install
+``` javascript
+import { Step, Steps } from 'vant';
+
+Vue.component(Step.name, Step);
+Vue.component(Steps.name, Steps);
+```
+
+### Usage
+
+#### Basic Usage
+
+:::demo Basic Usage
+```html
+
+ 买家下单
+ 商家接单
+ 买家提货
+ 交易完成
+
+
+
下一步
+```
+
+```javascript
+export default {
+ data() {
+ return {
+ active: 0
+ };
+ },
+
+ methods: {
+ nextStep() {
+ this.active = ++this.active % 4;
+ }
+ }
+}
+```
+:::
+
+#### 物流描述
+
+通过`title`和`description`属性来定义物流描述信息
+
+:::demo 物流描述
+```html
+
+ 买家下单
+ 商家接单
+ 买家提货
+ 交易完成
+
+```
+:::
+
+#### 竖向步骤条
+
+可以通过设置`direction`属性来改变步骤条的显示方式
+
+:::demo 竖向步骤条
+```html
+
+
+ 【城市】物流状态1
+ 2016-07-12 12:40
+
+
+ 【城市】物流状态2
+ 2016-07-11 10:00
+
+
+ 快件已发货
+ 2016-07-10 09:30
+
+
+```
+:::
+
+### #### Advanced Usage
+使用`slot`增加自定义内容
+
+:::demo Advanced Usage
+```html
+
+
+ 物流进度
+ 买家下单
+ 商家接单
+ 买家提货
+ 交易完成
+
+```
+:::
+
+### Steps API
+
+| Attribute | Description | Type | Default | Accepted Values |
+|-----------|-----------|-----------|-------------|-------------|
+| active | 当前步骤,起始值为0 | `Number` | | |
+| icon | 当前步骤的icon | `String` | | |
+| iconClass | 当前步骤栏为icon添加的类 | `String` | | |
+| title | 当前步骤从标题 | `String` | | |
+| description | 当前步骤描述 | `String` | | |
+| direction | 显示方向 | `String` | `horizontal` | `vertical` |
+| activeColor | active状态颜色 | `String` | `#06bf04` | |
+
+### Steps Slot
+
+| 名称 | Description |
+|-----------|-----------|
+| icon | 自定义icon区域 |
+| message-extra | 状态栏添加额外的元素 |
diff --git a/docs/examples-docs/en-US/submit-bar.md b/docs/examples-docs/en-US/submit-bar.md
new file mode 100644
index 000000000..4a4acd884
--- /dev/null
+++ b/docs/examples-docs/en-US/submit-bar.md
@@ -0,0 +1,115 @@
+## SubmitBar
+
+
+
+
+
+### Install
+``` javascript
+import { SubmitBar } from 'vant';
+
+Vue.component(SubmitBar.name, SubmitBar);
+```
+
+### Usage
+
+#### Basic Usage
+
+:::demo Basic Usage
+```html
+
+```
+:::
+
+#### Disabled
+禁用状态下不会触发`submit`事件
+
+:::demo 禁用状态
+```html
+
+```
+:::
+
+#### Loading
+加载状态下不会触发`submit`事件
+:::demo 加载状态
+```html
+
+```
+:::
+
+####
+提示文案中的额外操作和说明
+:::demo 提示文案中添加操作
+```html
+
+
+ 您的收货地址不支持同城送, 修改地址 >
+
+
+```
+:::
+
+### API
+
+| Attribute | Description | Type | Default | 必须 |
+|-----------|-----------|-----------|-------------|-------------|
+| price | 价格(单位分) | `Number` | | 是 |
+| button-text | 按钮文字 | `String` | | 是 |
+| button-type | 按钮类型 | `String` | `danger` | 否 |
+| tip | 提示文案 | `String` | | 否 |
+| disabled | 是否禁用按钮 | `Boolean` | `false` | 否 |
+| loading | 是否显示加载中的按钮 | `Boolean` | `false` | 否 |
+
+### Event
+
+| Event | Description | Attribute |
+|-----------|-----------|-----------|
+| submit | 按钮点击事件回调 | - |
+
+### Slot
+
+| 名称 | Description |
+|-----------|-----------|
+| tip | 提示文案中的额外操作和说明 |
diff --git a/docs/examples-docs/en-US/swipe.md b/docs/examples-docs/en-US/swipe.md
new file mode 100644
index 000000000..5f80e6ef7
--- /dev/null
+++ b/docs/examples-docs/en-US/swipe.md
@@ -0,0 +1,80 @@
+
+
+## Swipe
+
+### Install
+``` javascript
+import { Swipe, SwipeItem } from 'vant';
+
+Vue.component(Swipe.name, Swipe);
+Vue.component(SwipeItem.name, SwipeItem);
+```
+
+### Usage
+
+#### Basic Usage
+通过`autoplay`属性设置自动轮播间隔
+
+:::demo Basic Usage
+```html
+
+ 1
+ 2
+ 3
+ 4
+
+```
+:::
+
+#### 图片懒加载
+配合 [Lazyload](#/zh-CN/component/lazyload) 组件实现图片懒加载
+
+:::demo 图片懒加载
+```html
+
+
+
+
+
+```
+
+```javascript
+export default {
+ data() {
+ return {
+ images: [
+ 'https://img.yzcdn.cn/1.jpg',
+ 'https://img.yzcdn.cn/2.jpg'
+ ]
+ }
+ }
+}
+```
+:::
+
+### API
+
+| Attribute | Description | Type | Default | Accepted Values |
+|-----------|-----------|-----------|-------------|-------------|
+| autoplay | 自动轮播间隔,单位为 ms | `Number` | - | - |
+| duration | 动画时长,单位为 ms | `Number` | `500` | - |
+| showIndicators | 是否显示指示器 | `Boolean` | `true` | - |
+
+### 事件
+
+| Event | Description | Attribute |
+|-----------|-----------|-----------|
+| change | 每一页轮播结束后触发 | index, 当前页的索引 |
diff --git a/docs/examples-docs/en-US/switch-cell.md b/docs/examples-docs/en-US/switch-cell.md
new file mode 100644
index 000000000..46c06d361
--- /dev/null
+++ b/docs/examples-docs/en-US/switch-cell.md
@@ -0,0 +1,79 @@
+## SwitchCell
+
+`SwitchCell`组件是对`Switch`和`Cell`组件的封装
+
+
+
+### Install
+``` javascript
+import { SwitchCell } from 'vant';
+
+Vue.component(SwitchCell.name, SwitchCell);
+```
+
+### Usage
+
+#### Basic Usage
+
+:::demo Basic Usage
+```html
+
+
+
+```
+
+```javascript
+export default {
+ data() {
+ return {
+ checked: true
+ }
+ }
+}
+```
+:::
+
+#### Disabled
+通过`disabled`属性可以将组件设置为禁用状态
+
+:::demo 禁用状态
+```html
+
+
+
+```
+:::
+
+#### Loading
+通过`loading`属性可以将组件设置为加载状态
+
+:::demo 加载状态
+```html
+
+
+
+```
+:::
+
+### API
+
+| Attribute | Description | Type | Default | Accepted Values |
+|-----------|-----------|-----------|-------------|-------------|
+| v-model | 开关状态 | `Boolean` | | |
+| title | 左侧标题 | `String` | `''` | |
+| loading | 是否为加载状态 | `Boolean` | `false` | |
+| disabled | 是否为禁用状态 | `Boolean` | `false` | |
+
+### Event
+
+| Event | Description | Attribute |
+|-----------|-----------|-----------|
+| change | 开关状态切换回调 | checked: 是否选中开关 |
\ No newline at end of file
diff --git a/docs/examples-docs/en-US/switch.md b/docs/examples-docs/en-US/switch.md
index b42062673..6868d48fd 100644
--- a/docs/examples-docs/en-US/switch.md
+++ b/docs/examples-docs/en-US/switch.md
@@ -102,8 +102,8 @@ export default {
| Attribute | Description | Type | Default | Accepted Values |
|-----------|-----------|-----------|-------------|-------------|
| v-model | Check status of Switch | `Boolean` | `false` | - |
-| loading | Whether to show loading icon | `Boolean` | `false` | - |
-| disabled | Disable switch | `Boolean` | `false` | - |
+| loading | Whether to show loading icon | `Boolean` | `false` | - |
+| disabled | Disable switch | `Boolean` | `false` | - |
### Event
diff --git a/docs/examples-docs/en-US/tab.md b/docs/examples-docs/en-US/tab.md
new file mode 100644
index 000000000..1cd92a810
--- /dev/null
+++ b/docs/examples-docs/en-US/tab.md
@@ -0,0 +1,230 @@
+
+
+## Tab
+
+### Install
+``` javascript
+import { Tab, Tabs } from 'vant';
+
+Vue.component(Tab.name, Tab);
+Vue.component(Tabs.name, Tabs);
+```
+
+### Usage
+
+#### Basic Usage
+
+默认情况下是启用第一个`tab`。
+
+:::demo Basic Usage
+```html
+
+ 内容一
+ 内容二
+ 内容三
+ 内容四
+
+```
+:::
+
+#### active特定tab
+
+可以在`van-tabs`上设置`active`为对应`tab`的索引(从0开始,即0代表第一个)即可激活对应`tab`,默认为0。
+
+:::demo Basic Usage
+```html
+
+ 内容一
+ 内容二
+ 内容三
+ 内容四
+
+```
+:::
+
+#### 设置切换tab的动画时间
+
+通过设置`duration`来指定时间,默认为0.3s,只接受`Number`类型参数。
+
+:::demo 设置切换tab的动画时间
+```html
+
+ 内容一
+ 内容二
+ 内容三
+
+```
+:::
+
+#### 横向滚动tab
+
+默认情况下多于4个tab时,可以横向滚动tab。可以通过设置`swipeThreshold`这个阙值,多于这个阙值时,tab就会支持横向滚动。
+
+:::demo 横向滚动tab
+```html
+
+ 内容一
+ 内容二
+ 内容三
+ 内容四
+ 内容五
+ 内容六
+ 内容七
+ 内容八
+
+```
+:::
+
+#### 禁用tab
+
+在对应的`van-tab`上设置`disabled`属性即可,如果需要监听禁用事件,可以监听`disabled`事件。
+
+:::demo 禁用tab
+```html
+
+ 内容一
+ 内容二
+ 内容三
+ 内容四
+
+```
+
+```javascript
+export default {
+ methods: {
+ popalert() {
+ alert('haha')
+ }
+ }
+};
+```
+:::
+
+#### card样式
+
+`Tabs`目前有两种样式:`line`和`card`,默认为`line`样式,也就上面基础用法中的样式,你可以在`van-tabs`上设置`type`为`card`改为card样式。
+
+:::demo card样式
+```html
+
+ 内容一
+ 内容二
+ 内容三
+ 内容四
+
+```
+:::
+
+
+#### 自定义样式
+
+可以在`van-tabs`上设置对应的`class`,从而自定义某些样式。
+
+:::demo 自定义样式
+```html
+
+ 内容一
+ 内容二
+ 内容三
+ 内容四
+
+
+
+```
+:::
+
+#### click事件
+
+可以在`van-tabs`上绑定一个`click`事件,事件处理函数有一个参数,参数为对应`tab`在`tabs`中的索引。
+
+:::demo click事件
+```html
+
+ 内容一
+ 内容二
+ 内容三
+ 内容四
+
+```
+
+```javascript
+export default {
+ methods: {
+ handleTabClick(index) {
+ alert(index);
+ }
+ }
+};
+```
+:::
+
+### van-tabs API
+
+| Attribute | Description | Type | Default | 可选 |
+|-----------|-----------|-----------|-------------|-------------|
+| classtype | 两种UI | `String` | `line` | `line`, `card` |
+| active | 默认激活的tab | `String`, `Number` | `0` | |
+| navclass | tabs的内部nav上的自定义classname | `String` | | |
+| duration | 切换tab的动画时间 | `Number` | `0.3` | | |
+
+
+### van-tab API
+
+| Attribute | Description | Type | Default | 可选 |
+|-----------|-----------|-----------|-------------|-------------|
+| title | tab的标题 | `String` | | |
+| disabled | 是否禁用这个tab | `Boolean` | `false` | |
+
+### van-tabs Event
+
+| Event | Description | Attribute |
+|-----------|-----------|-----------|
+| click | 某个tab点击事件 | index:点击的`tab`的索引 |
+| disabled | 某个tab禁用时点击事件 | index:点击的`tab`的索引 |
+
diff --git a/docs/examples-docs/en-US/tabbar.md b/docs/examples-docs/en-US/tabbar.md
new file mode 100644
index 000000000..effb13e1e
--- /dev/null
+++ b/docs/examples-docs/en-US/tabbar.md
@@ -0,0 +1,98 @@
+## Tabbar
+
+
+
+### Install
+``` javascript
+import { Tabbar, TabbarItem } from 'vant';
+
+Vue.component(Tabbar.name, Tabbar);
+Vue.component(TabbarItem.name, TabbarItem);
+```
+
+### Usage
+
+#### Basic Usage
+
+:::demo Basic Usage
+```html
+
+ 标签
+ 标签
+ 标签
+ 标签
+
+```
+
+```javascript
+export default {
+ data() {
+ return {
+ active: 0
+ }
+ }
+}
+```
+:::
+
+#### 自定义图标
+通过 icon slot 自定义图标
+
+:::demo 自定义图标
+```html
+
+
+ 自定义
+
+
+ 标签
+ 标签
+
+```
+
+```javascript
+export default {
+ data() {
+ return {
+ active2: 0,
+ icon: {
+ normal: '//img.yzcdn.cn/1.png',
+ active: '//img.yzcdn.cn/2.png'
+ }
+ }
+ }
+}
+```
+:::
+
+### Tabbar API
+
+| Attribute | Description | Type | Default | Accepted Values |
+|-----------|-----------|-----------|-------------|-------------|
+| v-model | 当前选中标签的索引 | `Number` | - | - |
+
+### Tabbar Event
+
+| Event | Description | Attribute |
+|-----------|-----------|-----------|
+| change | 切换标签时触发 | active: 当前选中标签 |
+
+### TabbarItem API
+
+| Attribute | Description | Type | Default | Accepted Values |
+|-----------|-----------|-----------|-------------|-------------|
+| icon | 图标名称 | `String` | - | Icon 组件中可用的类型 |
+| dot | 是否显示小红点 | `Boolean` | - | - |
diff --git a/docs/examples-docs/en-US/tag.md b/docs/examples-docs/en-US/tag.md
new file mode 100644
index 000000000..080fdda91
--- /dev/null
+++ b/docs/examples-docs/en-US/tag.md
@@ -0,0 +1,59 @@
+## Tag
+
+### Install
+``` javascript
+import { Tag } from 'vant';
+
+Vue.component(Tag.name, Tag);
+```
+
+### Usage
+
+#### Basic Usage
+通过 type 属性控制 Tag 颜色,默认为灰色
+:::demo Basic Usage
+```html
+
标签
+
标签
+
标签
+
标签
+```
+:::
+
+#### 空心样式
+设置`plain`属性设置为空心样式
+
+:::demo 空心样式
+```html
+
标签
+
标签
+
标签
+
标签
+```
+:::
+
+#### 标记样式
+通过`mark`设置为标记样式
+
+:::demo 标记样式
+```html
+
标签
+
标签
+
标签
+
标签
+```
+:::
+
+### API
+
+| Attribute | Description | Type | Default | Accepted Values |
+|-----------|-----------|-----------|-------------|-------------|
+| type | Type | `String` | `''`| `primary` `success` `danger` |
+| plain | 是否为空心样式 | `Boolean` | `false` | |
+| mark | 是否为标记样式 | `Boolean` | `false` | |
+
+### Slot
+
+| name | Description |
+|-----------|-----------|
+| - | 自定义 Tag 显示内容 |
diff --git a/docs/examples-docs/en-US/toast.md b/docs/examples-docs/en-US/toast.md
new file mode 100644
index 000000000..ee3c47aa6
--- /dev/null
+++ b/docs/examples-docs/en-US/toast.md
@@ -0,0 +1,158 @@
+
+
+## Toast
+
+### Install
+
+```javascript
+import { Toast } from 'vant';
+```
+
+### Usage
+
+#### 文字提示
+
+:::demo 文字提示
+```html
+
文字提示
+```
+
+```javascript
+export default {
+ methods: {
+ showToast() {
+ Toast('我是提示文案,建议不超过十五字~');
+ }
+ }
+}
+```
+:::
+
+#### 加载提示
+
+:::demo 加载提示
+```html
+
加载提示
+```
+
+```javascript
+export default {
+ methods: {
+ showLoadingToast() {
+ Toast.loading();
+ }
+ }
+}
+```
+:::
+
+#### 成功/失败提示
+
+:::demo 成功/失败提示
+```html
+
成功提示
+
失败提示
+```
+
+```javascript
+export default {
+ methods: {
+ showSuccessToast() {
+ Toast.success('成功文案');
+ },
+ showFailToast() {
+ Toast.fail('失败文案');
+ }
+ }
+}
+```
+:::
+
+#### Advanced Usage
+
+:::demo Advanced Usage
+```html
+
#### Advanced Usage
+```
+
+```javascript
+export default {
+ methods: {
+ showCustomizedToast() {
+ const toast = Toast.loading({
+ duration: 0, // 持续展示 toast
+ forbidClick: true, // 禁用背景点击
+ message: '倒计时 3 秒'
+ });
+
+ let second = 3;
+ const timer = setInterval(() => {
+ second--;
+ if (second) {
+ toast.message = `倒计时 ${second} 秒`;
+ } else {
+ clearInterval(timer);
+ Toast.clear();
+ }
+ }, 1000);
+ }
+ }
+};
+```
+:::
+
+### 方法
+
+| 方法名 | Attribute | 返回值 | 介绍 |
+|-----------|-----------|-----------|-------------|
+| Toast | `options | message` | toast 实例 | 展示提示 |
+| Toast.loading | `options | message` | toast 实例 | 展示加载提示 |
+| Toast.success | `options | message` | toast 实例 | 展示成功提示 |
+| Toast.fail | `options | message` | toast 实例 | 展示失败提示 |
+| Toast.clear | - | `void` | 关闭提示 |
+
+### Options
+
+| Attribute | Description | Type | Default | Accepted Values |
+|-----------|-----------|-----------|-------------|-------------|
+| type | 提示类型 | `String` | `text` | `loading` `success` `fail` `html` |
+| message | 内容 | `String` | `''` | - |
+| forbidClick | 禁止背景点击 | `Boolean` | `false` | - |
+| duration | 时长(ms) | `Number` | `3000` | 值为 0 时,toast 不会消失 |
diff --git a/docs/examples-docs/en-US/tree-select.md b/docs/examples-docs/en-US/tree-select.md
new file mode 100644
index 000000000..165afce10
--- /dev/null
+++ b/docs/examples-docs/en-US/tree-select.md
@@ -0,0 +1,168 @@
+
+
+## TreeSelect
+
+### Install
+``` javascript
+import { TreeSelect } from 'vant';
+
+Vue.component(TreeSelect.name, TreeSelect);
+```
+
+### Usage
+
+#### Basic Usage
+
+:::demo Basic Usage
+```html
+
+```
+
+```javascript
+export default {
+ data() {
+ return {
+ items: items,
+ // 左侧高亮元素的index
+ mainActiveIndex: 0,
+ // 被选中元素的id
+ activeId: 1001
+ };
+ },
+ methods: {
+ onNavClick(index) {
+ this.mainActiveIndex = index;
+ },
+ onItemClick(data) {
+ console.log(data);
+ this.activeId = data.id;
+ }
+ }
+}
+```
+:::
+
+### API
+
+#### 传入参数
+
+| Attribute | Description | Type | Default | 必须 |
+|-----------|-----------|-----------|-------------|-------------|
+| items | 分类显示所需的数据,具体数据结构可看 数据结构 | Array | [] | |
+| mainActiveIndex | 左侧导航高亮的索引 | Number | 0 | |
+| activeId | 右侧选择项,高亮的数据id | Number | 0 | |
+
+#### 事件
+| Event | Description | Attribute |
+|-----------|-----------|-----------|
+| navclick | 左侧导航点击时,触发的事件 | index:被点击的导航的索引 |
+| itemclick | 右侧选择项被点击时,会触发的事件 | data: 该点击项的数据 |
+
+### Data Structure
+#### items 分类显示所需数据的数据结构
+`items` 整体为一个数组,数组内包含一系列描述分类的 object。
+
+每个分类里,text表示当前分类的名称。children 表示分类里的可选项,为数组结构,id被用来唯一标识每个选项
+```javascript
+[
+ {
+ // 导航名称
+ text: '所有城市',
+ // 该导航下所有的可选项
+ children: [
+ {
+ // 可选项的名称
+ text: '温州',
+ // 可选项的id,高亮的时候是根据id是否和选中的id是否相同进行判断的
+ id: 1002
+ },
+ {
+ // 可选项的名称
+ text: '杭州',
+ // 可选项的id,高亮的时候是根据id是否和选中的id是否相同进行判断的
+ id: 1001
+ }
+ ]
+ }
+]
+```
diff --git a/docs/examples-docs/en-US/uploader.md b/docs/examples-docs/en-US/uploader.md
new file mode 100644
index 000000000..635adaf3a
--- /dev/null
+++ b/docs/examples-docs/en-US/uploader.md
@@ -0,0 +1,57 @@
+
+
+## Uploader
+
+### Install
+``` javascript
+import { Uploader } from 'vant';
+
+Vue.component(Uploader.name, Uploader);
+```
+
+### Usage
+
+#### Basic Usage
+
+:::demo Basic Usage
+```html
+
+
+
+
+
+```
+
+```javascript
+export default {
+ methods: {
+ logContent(file) {
+ console.log(file)
+ }
+ }
+};
+```
+:::
+
+### API
+
+| Attribute | Description | Type | Default | Accepted Values |
+|-----------|-----------|-----------|-------------|-------------|
+| resultType | 读取文件的方式,以base64的方式读取;以文本的方式读取 | `String` | `dataUrl` | `text` |
+| disable | 是否禁用上传,在图片上传期间设置为true,禁止用户点击此组件上传图片 | `Boolean` | `false` | - |
+| beforeRead | 读文件之前的钩子,参数为选择的文件,若返回 false 则停止读取文件 | `Function` | - | - |
+| afterRead | 文件读完之后回调此函数,参数为 { file:'选择的文件',content:'读的内容' } | `Function` | - | - |
+
+### Slot
+
+| name | Description |
+|-----------|-----------|
+| - | 自定义上传显示图标 |
diff --git a/docs/examples-docs/en-US/waterfall.md b/docs/examples-docs/en-US/waterfall.md
new file mode 100644
index 000000000..a23ee8eea
--- /dev/null
+++ b/docs/examples-docs/en-US/waterfall.md
@@ -0,0 +1,121 @@
+## Waterfall
+
+### Install
+
+#### 全局注册
+
+`Waterfall`引入后就自动全局安装。如果需要,可以再次手动安装:
+
+```js
+import Vue from 'vue';
+import { Waterfall } from 'vant';
+
+Vue.use(Waterfall);
+```
+
+#### 局部注册
+
+如果你只是想在某个组件中使用`Waterfall`,可以在对应组件中注册`Waterfall`指令,这样只能在你注册的组件中使用`Waterfall`:
+
+```js
+import { Waterfall } from 'vant';
+
+export default {
+ directives: {
+ WaterfallLower: Waterfall('lower'),
+ WaterfallUpper: Waterfall('upper')
+ }
+};
+```
+
+### Usage
+
+
+
+
+
+#### Basic Usage
+使用 `v-waterfall-lower` 监听滚动到达底部,并执行相应函数。若是函数执行中需要异步加载数据,可以将 `waterfall-disabled` 指定的值置为 false,禁止 `v-waterfall-lower` 监听滚动事件
+
+注意:`waterfall-disabled` 传入的是 vue 对象中表示是否禁止瀑布流触发 key 值,类型是字符串
+:::demo Basic Usage
+```html
+
当即将滚动到元素底部时,会自动加载更多
+
+```
+:::
+
+### API
+
+| Attribute | Description | Type | Default | Accepted Values |
+|-----------|-----------|-----------|-------------|-------------|
+| v-waterfall-lower | 滚动到底部, 触发执行的函数 | `Function` | - | |
+| v-waterfall-upper | 滚动到顶部, 触发执行的函数 | `Function` | - | |
+| waterfall-disabled | 在 vue 对象中表示是否禁止瀑布流触发的 key 值 | `String` | - | |
+| waterfall-offset | 触发瀑布流加载的阈值 | `Number` | `300` | |
+
diff --git a/docs/examples-docs/zh-CN/image-preview.md b/docs/examples-docs/zh-CN/image-preview.md
index 962cfd7af..5a5b337ba 100644
--- a/docs/examples-docs/zh-CN/image-preview.md
+++ b/docs/examples-docs/zh-CN/image-preview.md
@@ -4,6 +4,11 @@
margin-left: 15px;
}
}
+.van-image-preview {
+ img {
+ pointer-events: none;
+ }
+}