vue vant Popup 弹出层 与 Picker 选择器 的完美结合 实现多级列表选择

本文介绍如何利用Vant UI库中的Popup弹出层和Picker选择器组件来提升项目中选择列表的用户体验。通过实例展示了如何在Vue项目中集成这两个组件,包括页面结构、数据绑定和交互逻辑,以及样式调整。

前言:
在写项目的时候,经常会碰到选择列表,为了更完美的实现效果,使用了vant里面的 Popup 弹出层 + Picker 选择器
效果图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
页面结构:
在这里插入图片描述

van-field 是vant里面的输入框组件,这里你也可以用div代替,根据个人爱好选择
data为模拟数据,一般选择列表数据是后台返回,这里的data模拟后台返回的数据,我这里是在created()里面给columns进行赋值
在这里插入图片描述

PopupPicker根据vant里面的内容填写即可
在这里插入图片描述
点击切换时进行重新赋值:
在这里插入图片描述

源码:

<template>
  <div id="home">
    <topTitle>Pxh</topTitle>
    <main>
      <div class="content">
        <div class="kinds">
          <van-field readonly :value="value" @click="showPicker = true" />
          <van-popup v-model="showPicker" position="bottom" get-container="body">
            <van-picker
              show-toolbar
              :columns="columns"
              @cancel="showPicker = false"
              @confirm="onConfirm"
            />
          </van-popup>
        </div>
      </div>
    </main>
  </div>
</template>

<script>
export default {
  data() {
    return {
      columns: [],
      value: "朴信惠",
      showPicker: false,
      data: [
        { name: "匹诺曹" },
        { name: "继承者" },
        { name: "阿尔罕布拉宫的回忆" }
      ]
    };
  },
  computed: {},
  methods: {
    onConfirm(value, index) {
      //切换账号
      this.showPicker = false;
      this.value = value;
    }
  },
  created() {
    this.data.map(value => {
      value = value.name;
      this.columns.push(value);
    });
  }
};
</script>

<style lang="scss" scoped>
main {
  height: calc(100vh - 1.2rem);
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
}
#home {
  width: 100%;
  height: 100vh;
  overflow: hidden;
  .content {
    width: 100%;
    padding: 0.4rem;
    box-sizing: border-box;
    .kinds {
      width: 90%;
      margin: 0.666667rem auto 0;
      border: 1px solid #a7a7a7;
      border-radius: 0.266667rem;
    }
    .text {
      margin: 0.666667rem 0;
      p {
        font-size: 0.4rem;
        line-height: 0.666667rem;
      }
    }
  }
}
</style>

van-popup 里面加了一个get-container="body"属性
详解请看上篇文章:链接: https://blog.youkuaiyun.com/pxhing/article/details/105795031.

要在Vue2中使用Vant实现时间选择器,需要先安装Vant组件库,然后在Vue组件中引入相关的时间选择器组件。 首先,在命令行中使用以下命令安装Vant: ``` npm install vant@next -S ``` 然后在Vue组件中引入相关的时间选择器组件,例如: ```vue <template> <div> <van-popup v-model="showPicker" position="bottom"> <van-datetime-picker ref="picker" type="datetime" :min-date="minDate" :max-date="maxDate" :value="currentDate" @confirm="onConfirm" /> </van-popup> <van-button type="primary" @click="showPicker = true">选择时间</van-button> </div> </template> <script> export default { data() { return { showPicker: false, currentDate: new Date(), minDate: new Date(2010, 0, 1), maxDate: new Date(2022, 11, 31), }; }, methods: { onConfirm(value) { this.currentDate = value; this.showPicker = false; }, }, }; </script> ``` 在上面的代码中,我们使用了Vant的`van-popup`组件来实现时间选择器弹出框。我们设置了`position`为`bottom`,表示弹出框从底部弹出。我们还使用了`v-model`来控制弹出框的显示隐藏。 在弹出框中,我们使用了`van-datetime-picker`组件来实现时间选择器。我们设置了组件的`type`为`datetime`,表示选择的是日期和时间。我们还设置了`min-date`和`max-date`来限制可选的时间范围。我们使用了`value`来设置当前的时间值。当用户点击确认按钮时,会触发`@confirm`事件,我们在`onConfirm`方法中将选择的时间值赋给`currentDate`,并将弹出框隐藏起来。 最后,我们在页面上放置了一个按钮,当用户点击该按钮时,弹出框会从底部弹出,让用户可以选择时间。 以上就是使用Vant实现时间选择器的基本步骤。
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值