vue基于mint-ui實現(xiàn)城市選擇三級聯(lián)動
項目是基于vue2 的移動端項目,供大家參考,具體內(nèi)容如下
1、實際效果

地址三級聯(lián)動 mint-ui picker.png
2、首先你需要去下載一個包含中國省份,城市,區(qū)縣的數(shù)據(jù)
如下:
(這個地址里面包含二級聯(lián)動數(shù)據(jù),三級聯(lián)動數(shù)據(jù),四級聯(lián)動數(shù)據(jù)等,找到自己需要的)
(一個更好的中國地區(qū)數(shù)據(jù),推薦用這個)
3、具體代碼
主要是用到了mint-ui的picker組件,關(guān)于mint-ui的使用就自行看官網(wǎng)
Ⅰ、html組件
<div>
<mt-picker :slots="myAddressSlots" @change="onMyAddressChange"></mt-picker>
<p>地址3級聯(lián)動:{{myAddressProvince}} {{myAddressCity}} {{myAddresscounty}}</p>
</div>
Ⅱ、組件方法
<script>
import { Picker } from 'mint-ui';
import myaddress from '../../../static/address3.json' //引入省市區(qū)數(shù)據(jù)
export default {
name: '',
components: {
'mt-picker': Picker
},
props: {},
data () {
return {
myAddressSlots: [
{
flex: 1,
defaultIndex: 1,
values: Object.keys(myaddress), //省份數(shù)組
className: 'slot1',
textAlign: 'center'
}, {
divider: true,
content: '-',
className: 'slot2'
}, {
flex: 1,
values: [],
className: 'slot3',
textAlign: 'center'
},
{
divider: true,
content: '-',
className: 'slot4'
},
{
flex: 1,
values: [],
className: 'slot5',
textAlign: 'center'
}
],
myAddressProvince:'省',
myAddressCity:'市',
myAddresscounty:'區(qū)/縣',
}
},
created() {
},
methods: {
onMyAddressChange(picker, values) {
if(myaddress[values[0]]){ //這個判斷類似于v-if的效果(可以不加,但是vue會報錯,很不爽)
picker.setSlotValues(1,Object.keys(myaddress[values[0]])); // Object.keys()會返回一個數(shù)組,當(dāng)前省的數(shù)組
picker.setSlotValues(2,myaddress[values[0]][values[1]]); // 區(qū)/縣數(shù)據(jù)就是一個數(shù)組
this.myAddressProvince = values[0];
this.myAddressCity = values[1];
this.myAddresscounty = values[2];
}
},
},
mounted(){
this.$nextTick(() => { //vue里面全部加載好了再執(zhí)行的函數(shù) (類似于setTimeout)
this.myAddressSlots[0].defaultIndex = 0
// 這里的值需要和 data里面 defaultIndex 的值不一樣才能夠初始化
//因為我沒有看過源碼(我猜測是因為數(shù)據(jù)沒有改變,不會觸發(fā)更新)
});
}
}
</script>
參考文章 vue mint-ui 實現(xiàn)省市區(qū)街道4級聯(lián)動(mint-ui picker 的四級聯(lián)動)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- vue省市區(qū)三聯(lián)動下拉選擇組件的實現(xiàn)
- vue elementUI使用tabs與導(dǎo)航欄聯(lián)動
- vue基于mint-ui的城市選擇3級聯(lián)動的示例
- 詳解Vue、element-ui、axios實現(xiàn)省市區(qū)三級聯(lián)動
- VUE2 前端實現(xiàn) 靜態(tài)二級省市聯(lián)動選擇select的示例
- Vue.js組件tree實現(xiàn)省市多級聯(lián)動
- vue mint-ui 實現(xiàn)省市區(qū)街道4級聯(lián)動示例(仿淘寶京東收貨地址4級聯(lián)動)
- Vue實現(xiàn)左右菜單聯(lián)動實現(xiàn)代碼
- vue左右側(cè)聯(lián)動滾動的實現(xiàn)代碼
- vue實現(xiàn)列表左右聯(lián)動效果
相關(guān)文章
用Axios Element實現(xiàn)全局的請求loading的方法
本篇文章主要介紹了用Axios Element實現(xiàn)全局的請求loading的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
echarts.js 動態(tài)生成多個圖表 使用vue封裝組件操作
這篇文章主要介紹了echarts.js 動態(tài)生成多個圖表 使用vue封裝組件操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
Vue axios庫避免重復(fù)發(fā)送請求的示例介紹
Axios是一個基于promise的HTTP庫,可以用在瀏覽器和node.js中。axios是目前最優(yōu)秀的HTTP請求庫之一,我們封裝axios請求也是為了讓代碼看的更加清晰,后期好維護2023-02-02
vue?parseHTML函數(shù)源碼解析start鉤子函數(shù)
這篇文章主要為大家介紹了vue?parseHTML函數(shù)源碼解析start鉤子函數(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07
使用Vue實現(xiàn)調(diào)用接口加載頁面初始數(shù)據(jù)
今天小編就為大家分享一篇使用Vue實現(xiàn)調(diào)用接口加載頁面初始數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
vue2從數(shù)據(jù)變化到視圖變化之nextTick使用詳解
這篇文章主要為大家介紹了vue2從數(shù)據(jù)變化到視圖變化之nextTick使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09
TypeScript基本類型 typeof 和keyof案例詳解
這篇文章主要介紹了TypeScript基本類型 typeof 和keyof案例詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-10-10

