一、基础实现方式
- 核心组件
使用<picker>
组件,通过mode="selector"
启用普通选择器模式,range
属性绑定选项数组,value
控制选中项索引。关键代码结构:<picker mode="selector" :range="options" @change="bindPickerChange"> <view>{{ selected }}</view> </picker>
- 数据绑定
options
支持动态更新,如从接口获取数据后重新赋值- 选中值通过
value
属性或@change
事件返回索引
二、功能扩展要点
- 默认值设置
通过value
属性实现初始选中,支持动态修改:<picker :value="selectedIndex" @change="updateSelectedIndex">
- 样式定制
- 使用
class
或style
控制选择器外观(如宽度、背景色) - 避免使用
h1
等标题标签,通过view
+text
组合实现标题
- 交互优化
- 添加
@columnchange
事件监听滚动位置变化 - 使用
placeholder
提示未选择状态
三、全端兼容性处理
- 平台差异
- 小程序端需注意
picker-view
的兼容性 - H5端支持
input
联动,实现表单自动填充
- 性能优化
- 大数据量时启用
lazy-load
属性 - 避免频繁更新
range
数组,使用this.$set
触发响应式更新
四、典型应用场景
- 表单选择
如性别选择、学历选择等固定选项场景 - 动态筛选
结合接口数据实现分类筛选(如商品分类) - 自定义弹窗
通过uni-popup
封装选择器,提升交互体验
以上方案覆盖了UniApp普通选择器的核心实现与扩展功能,可根据实际需求调整数据结构和交互逻辑。