[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
- 前端路由