vue結合vant實現聯動效果

vant中提供的選擇器結合彈出框來實現聯動效果,供大傢參考,具體內容如下

1、用到的組件:Picker、Popup

2、引入:在main.js也好、頁面中也好全局也好,正確的引入;此處在main.js中按需引入;

main.js

import { Picker,Popup  } from 'vant';
Vue.use(Picker).use(Popup )

test.vue

<template>
    <div class='login'>
        <van-field 
            readonly 
            clickable 
            label="城市" 
            :value="value" 
            placeholder="選擇城市" 
            @click="showPicker = true" 
          />
        <van-popup v-model="showPicker" position="bottom">
            <van-picker 
                show-toolbar 
                :columns="columns" 
                @cancel="showPicker = false" 
                @confirm="onConfirm"
                @change="onChange" />
        </van-popup>
    </div>
</template>

<script>
    const citys = {
        '浙江': ['杭州', '寧波', '溫州', '嘉興', '湖州'],
        '福建': ['福州', '廈門', '莆田', '三明', '泉州']
    };
    export default {
        name: 'login',
        data() {
            return {
                value:'',
                showPicker:false,
                columns: [
                    {
                        values: Object.keys(citys),
                        className: 'column1'
                    },
                    {
                        values: citys['浙江'],
                        className: 'column2',
                        defaultIndex: 2
                    }
                ]
            };
        },
        //方法集合
        methods: {
            onConfirm(value) {
                this.value = value[0]+'-'+value[1];
                this.showPicker = false;
            },
            onChange(picker, values) {
                picker.setColumnValues(1, citys[values[0]]);
            }
        },
    }
</script>

之前使用antd,開始用vant之後發現一個不太好的地方,antd介紹一個組件會把他涉及的組件都寫入進來,而vant隻是引入該目錄要介紹的組件,不是很方便

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: