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只是引入该目录要介绍的组件,不是很方便

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持阿兔在线工具。

点赞(0)

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部