微信小程序开发——使用Vant组件库van-dropdown-menu实现下拉列表切换页面内容

本文介绍了如何利用Vant组件库的van-dropdown-menu组件来创建一个下拉列表,通过切换选择项来改变页面显示内容。通过设置hidden属性控制各个view模块的显示与隐藏,结合onchange事件监听选项变化,从而实现内容的动态切换。示例代码展示了具体的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Vant组件库van-dropdown-menu实现下拉列表切换页面内容

请先根据官网要求安装好vant组件库并引入相关组件

1、思路

在页面中使用hidden属性判断是否选中当前信息,再隐藏其他所有内容,仅显示所选内容。

2、代码

wxml部分

<van-dropdown-menu>
  <van-dropdown-item value="{{ value1 }}" options="{{ option1 }}" bind:change="onchange"/>
</van-dropdown-menu>

<view hidden="{{flag!==0}}">
000
</view>

<view hidden="{{flag!==1}}">
111
</view>

<view hidden="{{flag!==2}}">
222
</view>

<view hidden="{{flag!==3}}">
333
</view>

<view hidden="{{flag!==4}}">
444
</view>

js部分

  data: {
    option1: [
      { text: '当日考勤情况', value: 0 },
      { text: '考勤历史查看', value: 1 },
      { text: '本周考勤情况', value: 2 },
      { text: '本月考勤情况', value: 3 },
      { text: '今年考勤情况', value: 4 },
    ],
    value1: 0,
    flag:0
  },
  onchange:function (e) {
    this.setData({
      flag:e.detail
    })
    console.log(this.data.flag)
  },

3、实际效果(view模块中的内容可以根据实际开发调整)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用vant组件实现底部弹出层做列表搜索的条件,可以使用van-popup和van-dropdown-menu组件结合使用。 1. 在wxml中引入van-popup和van-dropdown-menu组件,并设置相关属性。 ``` <van-popup show="{{ showPopup }}" position="bottom" bind:close="onClosePopup" style="height: 85%;" > <van-dropdown-menu :overlay="overlay" :active-color="activeColor" :z-index="zIndex" height="100%" @close="onCloseMenu" > <view slot="title" class="filter-title"> <van-row> <van-col span="8" @click="onSelect(0)"> <van-icon name="search" /> <text>按关键词</text> </van-col> <van-col span="8" @click="onSelect(1)"> <van-icon name="location-o" /> <text>按地区</text> </van-col> <van-col span="8" @click="onSelect(2)"> <van-icon name="clock-o" /> <text>按时间</text> </van-col> </van-row> </view> <view slot="menu" class="filter-menu"> <van-collapse v-model="activeNames"> <van-collapse-item title="关键词" name="0"> <van-search v-model="keyword" :placeholder="placeholder" show-action @search="onSearch" /> </van-collapse-item> <van-collapse-item title="地区" name="1"> <van-area @confirm="onConfirmArea" /> </van-collapse-item> <van-collapse-item title="时间" name="2"> <van-datetime-picker type="datetime" :min-date="minDate" :max-date="maxDate" :value="date" @confirm="onConfirmDate" /> </van-collapse-item> </van-collapse> </view> </van-dropdown-menu> </van-popup> ``` 2. 在js中设置相关属性和方法。 ``` data: { // 是否显示弹出层 showPopup: false, // 当前选择的筛选条件 activeIndex: 0, // 筛选条件选项 overlay: false, activeColor: '#ee0a24', zIndex: 99, // 关键词搜索 keyword: '', placeholder: '请输入关键词', // 地区搜索 region: [], // 时间搜索 minDate: new Date(2020, 0, 1).getTime(), maxDate: new Date().getTime(), date: new Date().getTime(), // 当前展开的筛选条件项 activeNames: ['0'] }, methods: { // 打开弹出层 onShowPopup() { this.showPopup = true; }, // 关闭弹出层 onClosePopup() { this.showPopup = false; }, // 选择筛选条件 onSelect(index) { this.activeIndex = index; this.activeNames = [index.toString()]; this.onShowPopup(); }, // 关键词搜索 onSearch() { this.onClosePopup(); // 发起搜索请求 // ... }, // 地区搜索 onConfirmArea(value) { this.region = value; this.onClosePopup(); // 发起搜索请求 // ... }, // 时间搜索 onConfirmDate(value) { this.date = value.getTime(); this.onClosePopup(); // 发起搜索请求 // ... }, // 关闭筛选条件项 onCloseMenu() { this.activeIndex = -1; } } ``` 这样就能够实现底部弹出层做列表搜索的条件了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YSC7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值