在 mpvue開源之初寫了 用 vue 寫小程序,基於 mpvue 框架重寫 weui。當時用的是小程序的原生組件,沒有對其進行封裝和組件化。而對於如今的前端開發環境,組件化
,模塊化
,工程化
以及自動化
已是一種標配。而mpvue
框架又提供了一個很好的組件化開發平臺,所以就對小程序中的 picker
組件進行封裝,使其在用mpvue
開發的時候可以用快速的實現 picker
的功能。javascript
picker
組件picker
組件,可是在開發的時候會發如今 android 手機上看到的 picker
效果與微信開發者工具
預覽的效果不同,其實就是醜了一點點...picker
的地方不少,很常見。npm install mpvue-picker --save 或者 cnpm install mpvue-picker --save
複製代碼
<template>
<div class="mpvue-picer"> <button @click="showPicker">test for mpvuePicker</button> <mpvue-picker ref="mpvuePicker" :pickerValueArray="pickerValueArray" :pickerValueDefault='pickerValueDefault' @pickerConfirm="pickerConfirm"></mpvue-picker> </div> </template>
<script>
import mpvuePicker from 'mpvue-picker';
export default {
components: {
mpvuePicker
},
data() {
return {
pickerValueArray: ['住宿費', '禮品費', '活動費', '通信費', '補助'],
pickerValueDefault: [1]
};
},
methods: {
showPicker() {
this.$refs.mpvuePicker.show();
},
pickerConfirm(e) {
console.log(e);
}
}
};
</script>
<style>
</style>
複製代碼
在父組件中調用 mpvuePicker
實例中的 show
方法便可。前端
pickerValueArray: ['住宿費', '禮品費', '活動費', '通信費', '補助']
複製代碼
pickerValueArray: [
['中國', '美國', '日本', '俄羅斯'],
['茶', '咖啡', '壽司', '奶酪'],
['殲20', 'F22', '秋月級', 'T50']
]
複製代碼
pickerValueArray:
[
{
label: '飛機票',
value: 0,
children: [{
label: '經濟艙',
value: 1
},
{
label: '商務艙',
value: 2
}
]
},
{
label: '火車票',
value: 1,
children: [{
label: '臥鋪',
value: 1
},
{
label: '坐票',
value: 2
},
{
label: '站票',
value: 3
}
]
},
{
label: '汽車票',
value: 3,
children: [{
label: '快班',
value: 1
},
{
label: '普通',
value: 2
}
]
}
]
複製代碼
pickerValueArray:
[
{
label: 'phone',
value: 0,
children: [
{
label: 'iphone',
value: 1,
children: [{
label: 'iphoneX',
value: 1
},
{
label: 'iphone8',
value: 2
}, {
label: 'iphone8 Plus',
value: 3
}]
},
{
label: 'android',
value: 1,
children: [
{
label: 'vivo',
value: 1
},
{
label: '魅族',
value: 2
}, {
label: '小米',
value: 3
}
]
}
]
},
{
label: 'PC',
value: 0,
children: [
{
label: 'mac',
value: 1,
children: [
{
label: 'macbook Pro',
value: 1
},
{
label: 'iMac',
value: 2
}, {
label: 'mackbook',
value: 3
}, {
label: 'mackbook air',
value: 3
}
]
},
{
label: 'windows',
value: 1,
children: [
{
label: 'dell',
value: 1
},
{
label: 'surface',
value: 2
}, {
label: 'thinkpad',
value: 3
}
]
}
]
}
]
複製代碼
對於多級聯動,因爲沒有動態添加 picker 列數以及動態渲染其值,所以目前只支持 二級聯動和三級聯動。vue
mpvue-picker 地址java
萬水千山老是情,給個 star 行不行~android