Skip to content

下拉选择器 (原生)

TuiSelectNative 是基于浏览器原生 HTML <select> 元素封装的组件。 相比于功能强大的 TuiSelect,它的体积更轻量,交互完全遵循操作系统或浏览器的原生行为。它主要用于对 UI 定制要求不高、或需要调用原生控件的场景。

基础用法

配置式渲染

通过 options 属性传入选项数组。默认识别 labelvalue 字段,也可通过 labelKeyvalueKey 自定义。

html
<script setup>
import { ref } from 'vue';

const value = ref('');
const options = [
  { value: 'A', label: '选项 A' },
  { value: 'B', label: '选项 B' },
  { value: 'C', label: '选项 C', disabled: true }
];
</script>

<template>
  <TuiSelectNative 
    v-model="value" 
    :options="options" 
    placeholder="请选择" 
  />
</template>

插槽式渲染

使用 <TuiOptionNative> 子组件进行构建。

html
<template>
  <TuiSelectNative v-model="value">
    <TuiOptionNative label="选项 A" value="A" />
    <TuiOptionNative label="选项 B" value="B" />
  </TuiSelectNative>
</template>

多选

设置 multiple 属性开启多选模式。

注意

原生 <select multiple> 的表现形式通常是一个展开的列表框(List Box),用户需要按住 Ctrl (Windows) 或 Command (Mac) 键来进行多选。这与 TuiSelect 的 Tag 标签形式完全不同。

html
<template>
  <TuiSelectNative multiple v-model="selectedValues" :options="options" />
</template>

装饰与状态

可清空 (Clearable)

尽管原生 Select 不支持清空按钮,但组件通过外层封装实现了此功能。 设置 clearable 后,鼠标悬停时会显示删除图标(仅单选模式有效)。

html
<TuiSelectNative v-model="val" clearable :options="options" />

图标 (Icon)

通过 icon 属性可以在选择框头部添加图标。

html
<TuiSelectNative icon="tui-icon ti-star" v-model="val" :options="options" />

尺寸 (Size)

支持 large, small 以及默认尺寸。

html
<TuiSelectNative size="small" v-model="val1" :options="options" />
<TuiSelectNative size="large" v-model="val2" :options="options" />

API 参考

TuiSelectNative Props

属性名类型默认值说明
modelValueString/Number/Array-绑定值。
optionsArray[]数据源。
valueKeyString'value'选项对象中值的键名。
labelKeyString'label'选项对象中标签的键名。
disabledKeyString'disabled'选项对象中禁用的键名。
multipleBooleanfalse是否开启多选(原生行为)。
disabledBooleanfalse是否禁用。
clearableBooleanfalse是否显示清空按钮。
sizeStringnull尺寸。可选:large, small
iconString-头部图标类名。
placeholderString-占位符(通常作为第一个禁用选项显示)。
widthString/Number-宽度。
requiredBooleanfalse原生 required 属性。
autofocusBooleanfalse原生 autofocus 属性。
nameString-原生 name 属性。
idString-原生 id 属性。
customClassString-自定义类名。

TuiSelectNative Emits

事件名说明回调参数
update:modelValue绑定值变化时触发。(value)
change选项改变时触发。(value)
focus获得焦点时触发。(event)
blur失去焦点时触发。(event)
clear点击清空按钮时触发。-

TuiSelectNative Methods (Expose)

方法名说明
focus使选择框获取焦点。
blur使选择框失去焦点。
getSelectElement获取内部原生 select DOM 元素。
syncSelectedState手动同步选中状态。

TuiOptionNative Props

属性名类型默认值说明
valueString/Number/BooleanRequired选项的值。
labelString/Number-选项的标签。
disabledBooleanfalse是否禁用。
selectedBooleanfalse是否选中。
customClassString-自定义类名。