# Picker ### 介绍 提供多个选项集合供用户选择其中一项。 ### 组件重构 Picker 组件在 3.1.18 版本进行重构,调整了之前 API 设计不合理的地方,主要变更如下: * 支持通过 `v-model` 绑定当前选中的值,移除 `default-index` 属性 * 重命名选项集合属性 `list-data` 为 `columns` * 重新定义 `columns` 属性的数据格式,是由对象构成的一维或多维数组 * 重新定义 `confirm`、`close`、`change` 事件的回调参数 同时也对重构前的 Picker 组件进行了保留,如有需要可通过 [OldPicker 组件](https://nutui.jd.com/#/component/oldpicker) 进行查看。 ### 安装 ```javascript import { createApp } from 'vue'; // vue import { Picker, Popup, OverLay } from '@nutui/nutui'; // taro import { Picker, Popup, OverLay } from '@nutui/nutui-taro'; const app = createApp(); app.use(Picker); app.use(Popup); app.use(OverLay); ``` ### 基础用法 :::demo ```html ``` ::: ### 默认选中项 通过设置 modelValue 实现默认选中项,modelValue 是一个包含每项配置 value 值的数组。 :::demo ```html ``` ::: ### 多列展示 columns 属性可以通过二维数组的形式配置多列选择。 :::demo ```html ``` ::: ### 多级联动 使用 columns 属性的 children 字段可以实现选项级联的效果。 :::demo ```html ``` ::: ### 异步获取 在实际开发中,大部分情况 Columns 属性的数据是通过异步方式获取的。 :::demo ```html ``` ::: ### 自定义按钮 Picker 组件在底部和顶部分别设置了插槽,可进行自定义设置 :::demo ```html ``` ::: ## API ### Props | 参数 | 说明 | 类型 | 默认值 | |--------------|----------------------------------|--------|------------------| | v-model:value | 默认选中项 | Array | [] | | v-model:visible | 是否可见 | Boolean | - | | columns | 对象数组,配置每一列显示的数据 | Array | - | | title | 设置标题 | String | - | | cancel-text | 取消按钮文案 | String | 取消 | | ok-text | 确定按钮文案 | String | 确定 | | three-dimensional`小程序不支持` `v3.1.23` | 是否开启3D效果 | Boolean | true | ### Columns 数据结构 | 参数 | 说明 | 类型 | 默认值 | |--------------|----------------------------------|--------|------------------| | text | 选项的文字内容 | String|Number | | | value | 选项对应的值,且唯一 | String|Number | | | children | 用于级联选项 | Array | - | | className | 添加额外的类名 | String | | ### Events | 事件名 | 说明 | 回调参数 | |--------|----------------|--------------| | confirm | 点击确定按钮时触发 | { selectedValue, selectedOptions } | | close | 点击取消按钮时触发 | { selectedValue, selectedOptions } | | change | 选项发生改变时触发 | { columnIndex, selectedValue, selectedOptions } | ### Slots | 事件名 | 说明 | |--------|----------------| | default | 自定义滑动数据底部区域 | | top | 自定义滑动数据顶部区域 |