[TOC]
## picker组件
从**底部弹起**的滚动选择器,现支持五种选择器,通过mode来区分,分别是普通选择器,多列选择器,时间选择器,日期选择器,省市区选择器,默认是普通选择器
*****
<br>
### 1.普通选择器(selector)
| 属性名 | 类型 | 默认值 | 说明 | 最低版本 |
| --- | --- | --- | --- | --- |
| **range** | Array / Object Array | \[\] | mode为 selector 或 multiSelector 时,range 有效 | |
| **value** | Number | 0 | value 的值表示选择了 range 中的第几个(下标从 0 开始) | |
| **bindchange** | EventHandle | | value 改变时触发 change 事件,event.detail = {value: value} | |
| disabled | Boolean | false | 是否禁用 | |
| bindcancel | EventHandle | | 取消选择或点遮罩层收起 picker 时触发 | |
<br>
```
<!-- range,绑定在选择器中显示的数据,是个数据 同时mode 为 selector 或 multiSelector 时,range 有效 -->
<!-- value,表示选择了 range 中的第几个(下标从 0 开始),number型 -->
<!-- bindchange 当value的值发生改变的时候会触发这个时间 -->
<picker mode = "selector" range="{{arr1}}" value = "{{index}}" bindchange = "fun1">
<button>普通选择器</button>
<!-- 将当前选择的数据信息显示 -->
<view>当前选择的是:{{arr1[index]}}</view>
</picker>
```
```
data: {
arr1: ['美国', '中国', '巴西', '日本', '韩国', '巴西', '印度', '泰国'],
index:0,
},
fun1:function(e){
// picker发送选择改变,携带值为
console.log( e.detail.value)
this.setData({
index: e.detail.value
})
},
```
*****
### 2. 多列选择器(multiSelector)
| 属性名 | 类型 | 默认值 | 说明 | 最低版本 |
| --- | --- | --- | --- | --- |
| **range** | 二维Array / 二维Object Array | \[\] | mode为 selector 或 multiSelector 时,range 有效。二维数组,长度表示多少列,数组的每项表示每列的数据,如`[["a","b"], ["c","d"]]` | |
| range-key | String | | 当 range 是一个 二维Object Array 时,通过 range-key 来指定 Object 中 key 的值作为选择器显示内容 | |
| **value** | Array | \[\] | value 每一项的值表示选择了 range 对应项中的第几个(下标从 0 开始)。\[0,0\] | |
| **bindchange** | EventHandle | | value 改变时触发 change 事件,event.detail = {value: value} | |
| **bindcolumnchange** | EventHandle | | 某一列的值改变时触发 columnchange 事件,event.detail = {column: column, value: value},column 的值表示改变了第几列(下标从0开始),value 的值表示变更值的下标 | |
| bindcancel | EventHandle | | 取消选择时触发 | [1.9.90](https://developers.weixin.qq.com/miniprogram/dev/framework/compatibility.html) |
| disabled | Boolean | false | 是否禁用 | |
<br>
*****
<br>
```
<picker mode="multiSelector" range="{{arr2}}" value="{{Dindex}}" bindchange="change2" bindcolumnchange="columnChange">
<button>多列选择器</button>
<view>
当前选择:{{arr2[0][Dindex[0]]}},{{arr2[1][Dindex[1]]}},{{arr2[2][Dindex[2]]}}
</view>
</picker>
```
```
data: {
Dindex: [0, 0, 0],
arr2: [['无脊柱动物', '脊柱动物'], ['扁性动物', '线形动物', '环节动物', '软体动物', '节肢动物'], ['猪肉绦虫', '吸血虫']],
},
/**点击确认时回调 */
change2: function (e) {
// picker发送选择改变,携带值为
console.log(e.detail.value)
this.setData({
Dindex: e.detail.value
})
},
/** 当滚动的时候会回调*/
columnChange: function(e) {
// {column:0,value:0} 代表是滚动第0列的第0个值
console.log(e.detail.value)
console.log(e.detail.column)
}
```
*****
<br>
### 3.时间选择器-(time)
| 属性名 | 类型 | 默认值 | 说明 | 最低版本 |
| --- | --- | --- | --- | --- |
| **value** | String | | 表示**选中**的时间,格式为"hh:mm" | |
| **start** | String | | 表示**有效时间范围**的开始,字符串格式为"hh:mm" | |
| **end** | String | | 表示**有效时间范围**的结束,字符串格式为"hh:mm" | |
| **bindchange** | EventHandle | | value 改变时触发 change 事件,event.detail = {value: value} | |
| bindcancel | EventHandle | | 取消选择时触发 | [1.9.90](https://developers.weixin.qq.com/miniprogram/dev/framework/compatibility.html) |
| disabled | Boolean | false | 是否禁用 | |
*****
<br>
```
<picker
mode="time"
value="{{time}}"
start="09:00"
end="21:00"
bindchange="bindTimeChange"
>
<button size='mini' type='primary'>2.时间选择器</button>
</picker>
```
```
data: {
time: '12:01',
},
bindTimeChange:function(event){
console.log(event.detail)
},
```
*****
<br>
### 4.日期选择器-date
```
<picker mode="date" start="2015-09-01" end="2020-03-16" value="{{data}}" bindchange="change3">
<button>日期选择器</button>
<view class="picker">
当前选择日期为:{{data}}
</view>
</picker>
```
```
data: {
....
data: '2016-11-22',
```
},
```
change3: function (e) {
// picker发送选择改变,携带值为
console.log(e.detail.value)
this.setData({
data: e.detail.value
})
},
```
*****
<br>
### 5. 省市区选择器-region
```
<picker mode="region" bindchange="change4" value="{{region}}" custom-item="{{customItem}}">
<button>省市区选择器</button>
<view class="picker">
当前选择省市区为:{{region}}
</view>
</picker>
```
```
data: {
....
region: ['广东省', '广州市', '天河区'],
customItem: '全部'
},
change4: function (e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
region: e.detail.value
})
},
```
## picker-view
>嵌入页面的滚动选择器, 而不是从底部弹出的选择器
注意:其中只可放置`<picker-view-column/>`组件,其他节点不会显示。
| value | NumberArray | 数组中的数字依次表示 picker-view 内的 picker-view-column 选择的第几项(下标从 0 开始),数字大于 picker-view-column 可选项长度时,选择最后一项。 | \[0,0,0\] |
| --- | --- | --- | --- |
| **indicator-style** | String | 设置选择器**中间**选中框的**样式** | |
| indicator-class | String | 设置选择器**中间**选中框的**类名** | [1.1.0](https://developers.weixin.qq.com/miniprogram/dev/framework/compatibility.html) |
| mask-style | String | 设置蒙层的样式 | [1.5.0](https://developers.weixin.qq.com/miniprogram/dev/framework/compatibility.html) |
| mask-class | String | 设置蒙层的类名 | [1.5.0](https://developers.weixin.qq.com/miniprogram/dev/framework/compatibility.html) |
| **bindchange** | EventHandle | 当滚动选择,value 改变时触发 change 事件,event.detail = {value: value};value为数组,表示 picker-view 内的 picker-view-column 当前选择的是第几项(下标从 0 开始) | |
| bindpickstart | EventHandle | 当滚动选择开始时候触发事件 | [2.3.1](https://developers.weixin.qq.com/miniprogram/dev/framework/compatibility.html) |
| bindpickend | EventHandle | 当滚动选择结束时候触发事件 |
- Javascript
- 组成
- Web API
- 初步认识DOM
- 经典案例 (使用获取id的方法)
- 节点和元素
- 经典案例 (使用获取节点和元素的方法)
- 函数
- 作用域链
- Array对象的方法
- String对象的方法
- 绑定事件
- 事件委托
- 逻辑运算
- js高级(面向对象、)
- 基本知识
- 数据类型
- 基本包装类型的使用
- 定义变量的区别
- JavaScript对象的动态特性
- 关键字in
- 关键字delete
- 运算符
- 创建对象的方式
- 回调函数
- 高阶函数
- 构造器属性
- this指向
- hasOwnProperty属性
- 私有成员和特权方法
- 面向对象和面向过程的基础
- 异常捕获
- 构造函数和普通函数的区别
- 构造函数的补充
- 原型
- 原型图
- 获取原型对象的方法
- 原型对象的访问和设置
- 判断某个对象是否是指定实例对象的原型对象
- constructor
- isPrototypeOf
- instanceof
- 检测对象是公有还是私有
- 核心概念
- 继承
- 混入式继承
- 原型式继承
- 原型链继承
- 借用构造函数继承(call继承,经典继承)
- 组合式继承(推荐)
- class继承
- __ proto __属性
- call方法和apply方法
- Fuction相关知识
- 创建函数的方式
- eval函数
- 浅拷贝和深拷贝
- 浅拷贝
- 深拷贝
- Object相关知识
- Object原型属性和方法
- Object静态成员对象
- 案例
- 数组去重
- 闭包
- 语法
- DOM事件和闭包
- 定时器和闭包
- 即使对象初始化
- 闭包的变形
- 设计模式
- 单例模式
- 发布订阅模式(观察者模式)
- 工厂模式
- 命名空间模式
- 同步和异步
- 垃圾回收机制
- get和set
- JQuery
- 动画方法
- 事件
- 方法
- 节点
- 方法er
- HTML + CSS
- 经验
- flex布局
- px,em ,rem区别
- 清除浮动
- Less
- UI框架
- 一.Bootstrap框架
- 常用类名
- 二 .Animate.css
- 三.WOW.JS
- 四.scrollReveal.js
- 五.zepto框架
- zepto选择器
- 滑动事件
- tap触摸事件
- zepto动画
- 六,swipe框架
- 分页器
- 左右按钮和循环轮播
- 底部滚动和轮播方向
- 自动播放和切换效果
- 移入移除事件
- swipe结合animate.css
- 总结
- 滚滚屏
- 自动化构建工具
- 1.gulp
- 使用gulp编译less成css,并最终压缩css
- 压缩css
- 合并和压缩js
- 压缩图片
- 编写server服务
- 包管理器
- 介绍
- brew
- npm十全大补汤
- ES6
- class类
- class类的使用
- class类的继承结构
- let 和const
- 结构语法
- 模板字符串
- 化简写法
- 形参的默认值
- ...rest参数
- rest剩余参数
- 扩展参数
- 正则表达式
- 创建正则表达式的方式
- 构造函数
- 字面量的方式
- 其他(修饰符)
- 判断是否匹配成功
- 正则表达式案例
- 常见的匹配原则
- 验证密码长度
- 表单验证
- 正则提取
- 正则替换
- vue
- 插值操作
- Mustache语法
- 过滤器
- 绑定相关知识
- 绑定对象
- 单向绑定
- 双向绑定
- 绑定属性
- 动态绑定style
- 绑定事件
- 补充
- 绑定语法
- 基础
- vue介绍
- MVVM
- 计算属性
- 指令
- v-cloak
- 显示和隐藏
- 循环
- 自定义指令
- 本地缓存
- localStorage
- sessionStorage
- 对象劫持
- 组件
- 局部组件
- 父子组件
- 全局组件
- 组件访问实例数据
- 父传子
- 子传父
- 兄弟传兄弟
- 插槽
- methods,computed,watch的区别
- Vue.observable()
- vue.config.js配置
- 修饰符
- .sync修饰符
- $attrs和$listeners
- Node.js
- 使用Node执行js代码的两种方式
- 交互模式
- 解释js文件
- http模板
- request对象的使用
- express框架
- 安装
- post
- 获取请求参数
- post返回页面
- 重定向到别的接口
- get
- 返回页面
- get获取请求参数
- 请求静态资源
- 热重启
- Ajax
- 请求方式
- get请求
- post请求
- jQuery中的ajax方法
- JQuery中的get请求
- jQuery中的post请求
- 微信小程序
- 认识
- 引入样式的方式
- 绑定数据
- 小程序组件
- scroll - view 可滚动视图区域
- 发起请求
- template模板
- rich-text
- web-view
- open-data
- checkbox组件
- label组件
- radio组件
- picker组件
- swiper组件
- Git
- 跨域
- 左侧固定,右侧自适应
- vuex
- 如何解决vuex页面刷新数据丢失问题
- 数据结构
- 树
- 问题累积
- Axios
- 前端路由