From 021d30efb116fba46c76a27fc929d2a6f7a9d707 Mon Sep 17 00:00:00 2001 From: neverland Date: Wed, 20 Dec 2017 17:39:51 +0800 Subject: [PATCH] [Improvement] optimize area performance (#457) --- docs/markdown/zh-CN/area.md | 61 +++++++------- packages/area/index.vue | 145 +++++++++++++--------------------- packages/locale/lang/en-US.js | 2 +- packages/locale/lang/zh-CN.js | 2 +- test/unit/selector.js | 4 +- test/unit/specs/area.spec.js | 6 +- 6 files changed, 98 insertions(+), 122 deletions(-) diff --git a/docs/markdown/zh-CN/area.md b/docs/markdown/zh-CN/area.md index ebfcfaddd..8c2e486da 100644 --- a/docs/markdown/zh-CN/area.md +++ b/docs/markdown/zh-CN/area.md @@ -2,7 +2,7 @@ ### 使用指南 -``` javascript +```javascript import { Area } from 'vant'; Vue.use(Area); @@ -12,25 +12,23 @@ Vue.use(Area); #### 基础用法 -要初始化一个`Area`组件,你需要传入一个`areaList`属性,`areaList`数据格式具体可看下面数据格式章节。 +要初始化一个`Area`组件,你需要传入一个`areaList`属性,`areaList`数据格式具体可看下面数据格式章节 ```html ``` - #### 选中省市县 -如果想选中某个省市县,需要传入一个`value`属性,绑定对应的省市县`code`。 +如果想选中某个省市县,需要传入一个`value`属性,绑定对应的省市县`code` ```html ``` - #### 配置显示列 -可以通过`columnsNum`属性配置省市县显示的列数,默认情况下会显示省市县,当你设置为`2`,则只会显示省市选择。 +可以通过`columnsNum`属性配置省市县显示的列数,默认情况下会显示省市县,当你设置为`2`,则只会显示省市选择 ```html @@ -38,29 +36,30 @@ Vue.use(Area); ### API -| 参数 | 说明 | 类型 | 默认值 | 可选值 | -|-----------|-----------|-----------|-------------|-------------| -| value | 当前选中的省市区`code` | `String` | - | - | -| title | 顶部栏标题 | `String` | `''` | - | -| areaList | 省市县数据,必须与`province_list`、`city_list`和`county_list`为key | `Object` | - | - | -| columnsNum | 省市县显示列数,3-省市县,2-省市,1-省 | `String`,`Number` | 3 | - | +| 参数 | 说明 | 类型 | 默认值 | 可选值 | +| ---------- | ------------------------------------------------------------------- | ----------------- | ------ | ------ | +| value | 当前选中的省市区`code` | `String` | - | - | +| title | 顶部栏标题 | `String` | `''` | - | +| areaList | 省市县数据,必须与`province_list`、`city_list`和`county_list`为 key | `Object` | - | - | +| columnsNum | 省市县显示列数,3-省市县,2-省市,1-省 | `String`,`Number` | 3 | - | ### Event -| 事件名称 | 说明 | 回调参数 | -|-----------|-----------|-----------| -| confirm | 点击右上方完成按钮 | 一个数组参数,具体格式看下方数据格式章节 | -| cancel | 点击取消按钮时 | - | +| 事件名称 | 说明 | 回调参数 | +| -------- | ------------------ | ---------------------------------------- | +| confirm | 点击右上方完成按钮 | 一个数组参数,具体格式看下方数据格式章节 | +| cancel | 点击取消按钮时 | - | ### 数据格式 #### 省市县列表数据格式 -整体是一个Object,包含 `province_list`, `city_list`, `county_list` 三个key。 +整体是一个 Object,包含 `province_list`, `city_list`, `county_list` 三个 key。 -每项以省市区编码作为key,省市区名字作为value。编码为6位数字,前两位代表省份,中间两位代表城市,后两位代表区县,以0补足6位。如北京编码为 `11`,以零补足6位,为 `110000`。 +每项以省市区编码作为 key,省市区名字作为 value。编码为 6 位数字,前两位代表省份,中间两位代表城市,后两位代表区县,以 0 补足 6 位。如北京编码为 `11`,以零补足 6 位,为 `110000`。 `AreaList`具体格式如下: + ```javascript { province_list: { @@ -91,18 +90,24 @@ Vue.use(Area); 完整数据见 [Area.json](https://github.com/youzan/vant/blob/dev/docs/demos/mock/area.json) #### 点击完成时返回的数据格式 + 返回的数据整体为一个数组,数组内包含 `columnsNum` 个数据, 每个数据对应一列选项中被选中的数据。 `code` 代表被选中的地区编码, `name` 代表被选中的地区名称 + ```javascript -[{ - code: '110000', - name: '北京市' -}, { - code: '110100', - name: '北京市' -},{ - code: '110101', - name: '东城区' -}] +[ + { + code: '110000', + name: '北京市' + }, + { + code: '110100', + name: '北京市' + }, + { + code: '110101', + name: '东城区' + } +]; ``` diff --git a/packages/area/index.vue b/packages/area/index.vue index 8603c2767..86c0f6d0a 100644 --- a/packages/area/index.vue +++ b/packages/area/index.vue @@ -1,26 +1,21 @@