当前位置: 首页 > backend >正文

使用UniApp实现下拉框和表格组件页面

使用UniApp实现下拉框和表格组件页面

UniApp提供了一套完整的跨平台开发框架,支持在多个平台上运行。下拉框和表格是常见的UI组件,可以通过UniApp内置组件或第三方插件实现。

下拉框组件的实现

UniApp内置的<picker>组件可以实现下拉选择功能。以下是一个基础的下拉框实现示例:

<template><view><picker mode="selector" :range="options" @change="handlePickerChange"><view>当前选择:{{selectedOption}}</view></picker></view>
</template><script>
export default {data() {return {options: ['选项1', '选项2', '选项3'],selectedOption: '请选择'}},methods: {handlePickerChange(e) {this.selectedOption = this.options[e.detail.value]}}
}
</script>

表格组件的实现

UniApp没有内置表格组件,但可以通过<view><text>组合实现表格效果,或使用第三方组件如uni-table

<template><view><uni-table border><uni-tr><uni-th>姓名</uni-th><uni-th>年龄</uni-th><uni-th>职业</uni-th></uni-tr><uni-tr v-for="(item, index) in tableData" :key="index"><uni-td>{{item.name}}</uni-td><uni-td>{{item.age}}</uni-td><uni-td>{{item.job}}</uni-td></uni-tr></uni-table></view>
</template><script>
export default {data() {return {tableData: [{name: '张三', age: 25, job: '工程师'},{name: '李四', age: 30, job: '设计师'}]}}
}
</script>

下拉框与表格联动

实现下拉框选择后更新表格内容的联动效果:

<template><view><picker mode="selector" :range="filterOptions" @change="filterTable"><view>筛选条件:{{currentFilter}}</view></picker><uni-table border><uni-tr><uni-th>姓名</uni-th><uni-th>部门</uni-th></uni-tr><uni-tr v-for="(item, index) in filteredData" :key="index"><uni-td>{{item.name}}</uni-td><uni-td>{{item.department}}</uni-td></uni-tr></uni-table></view>
</template><script>
export default {data() {return {filterOptions: ['全部', '技术部', '市场部', '人事部'],currentFilter: '全部',allData: [{name: '张三', department: '技术部'},{name: '李四', department: '市场部'},{name: '王五', department: '人事部'}],filteredData: []}},created() {this.filteredData = this.allData},methods: {filterTable(e) {this.currentFilter = this.filterOptions[e.detail.value]if(this.currentFilter === '全部') {this.filteredData = this.allData} else {this.filteredData = this.allData.filter(item => item.department === this.currentFilter)}}}
}
</script>

样式优化

通过CSS可以进一步美化下拉框和表格:

/* 下拉框样式 */
picker {padding: 15px;background-color: #f8f8f8;border-radius: 5px;margin: 10px;
}/* 表格样式 */
uni-table {width: 100%;margin-top: 20px;
}uni-th {background-color: #f0f0f0;padding: 10px;
}uni-td {padding: 8px;text-align: center;
}

注意事项
  1. 使用uni-table需要先安装对应的uni-ui组件
  2. 数据量较大时考虑分页处理
  3. 移动端适配需要注意表格的横向滚动问题
  4. 下拉框在H5和微信小程序中的表现略有不同

通过以上方法可以快速在UniApp中实现包含下拉框和表格的页面,并能实现两者间的数据联动。

http://www.xdnf.cn/news/20242.html

相关文章:

  • Android Kotlin 动态注册 Broadcast 的完整封装方案
  • uv教程 虚拟环境
  • kotlin - 2个Fragment实现左右显示,左边列表,右边详情,平板横、竖屏切换
  • 【LeetCode 每日一题】2348. 全 0 子数组的数目
  • 开源OpenHarmony润开鸿HH-SCDAYU800A开发板开箱体验
  • AI热点周报(8.31~9.6): Qwen3‑Max‑Preview上线、GLM-4.5提供一键迁移、Gemini for Home,AI风向何在?
  • C++进阶——继承(2)
  • 基于STM32的交通灯设计—紧急模式、可调时间
  • 如何理解`(line_status = parse_line()) == LINE_OK`?
  • @Autowired注解(二)
  • 【CAN通信】AUTOSAR架构下TC3xx芯片是如何将一帧CAN报文接收上来的
  • Xsens解码人形机器人训练的语言
  • 如何通过AI进行数据资产梳理
  • 43这周打卡——生成手势图像 (可控制生成)
  • 球坐标系下调和函数的构造:多项式边界条件的求解方法
  • linux Nginx服务配置介绍,和配置流程
  • 快手Keye-VL 1.5开源128K上下文+0.1秒级视频定位+跨模态推理,引领视频理解新标杆
  • 错误是ModuleNotFoundError: No module named ‘pip‘解决“找不到 pip”
  • vsan default storage policy 具体是什么策略?
  • HTB GoodGames
  • centos下gdb调试python的core文件
  • 串口通信的学习
  • 日内5%,总回撤10%:EagleTrader风控规则里,隐藏着什么核心考点?
  • 使用API接口获取淘宝商品详情数据需要注意哪些风险?
  • MySQL数据库精研之旅第十六期:深度拆解事务核心(上)
  • python + Flask模块学习 1 基础用法
  • IC ATE集成电路测试学习——Stuck-at fault And Chain(一)
  • 场景切换 × 流畅过渡动画实现方案 | 图扑软件
  • 老师如何高效收集学生学籍信息,完成收集工作?
  • 大模型赋能电子制造全生命周期质量管理的应用及实践