更新记录

1.0.0(2026-01-29) 下载此版本


平台兼容性

uni-app(3.6.15)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟

x-select 下拉选择器

类似 Ant Design Vue 的下拉选择器组件,支持无限滚动分页加载。

功能特性

  • 📦 基础选择:支持自定义 value 和 label 字段。
  • 📜 滚动分页:支持 scrolltolower 事件,轻松实现无限滚动加载。
  • 🚫 禁用状态:支持整体禁用和单个选项禁用。
  • 🎨 Ant Design 风格:简约、现代的 UI 设计。

引入组件

import xSelect from '@/components/x-select/x-select.vue';

export default {
  components: {
    xSelect
  }
}

代码演示

基础用法

<x-select
  v-model="value"
  :options="options"
  placeholder="请选择"
></x-select>
data() {
  return {
    value: '',
    options: [
      { label: '选项1', value: 1 },
      { label: '选项2', value: 2 }
    ]
  }
}

滚动分页加载

监听 load-more 事件,在回调中请求下一页数据并追加到 options 数组中。

<x-select
  v-model="value"
  :options="options"
  :loading="loading"
  :hasMore="hasMore"
  placeholder="滚动加载更多"
  @load-more="handleLoadMore"
></x-select>
methods: {
  handleLoadMore() {
    if (this.loading || !this.hasMore) return;

    this.loading = true;
    // 模拟异步请求
    setTimeout(() => {
      const newItems = [...]; // 获取新数据
      this.options = [...this.options, ...newItems]; // 追加数据
      this.loading = false;

      if (noMoreData) {
        this.hasMore = false;
      }
    }, 1000);
  }
}

API

Props

参数 说明 类型 默认值
value / v-model 指定当前选中的条目 String | Number | Object -
options 选项数据,默认 label 和 value 属性,可通过 labelKey/valueKey 修改 Array []
placeholder 选择框默认文字 String '请选择'
disabled 是否禁用 Boolean false
loading 是否处于加载中状态 Boolean false
hasMore 是否还有更多数据(控制底部加载提示) Boolean false
labelKey 选项中显示文本的字段名 String 'label'
valueKey 选项中值对应的字段名 String 'value'

Events

事件名称 说明 回调参数
change 选中项变化时触发 function(option: Object)
load-more 下拉列表滚动到底部时触发 -

Slots

插槽名称 说明
trigger 自定义触发器内容,替换默认的输入框样式
option 自定义选项内容,参数:{ item, index }

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议