事件处理
事件处理
SunlightSelect 支持多种事件处理,包括选择变化、焦点、失焦、清空、下拉框显示/隐藏和搜索事件。
基本事件处理
您可以监听选择器的各种事件,实现自定义业务逻辑。
基础事件处理示例
选择变化事件
change事件:选择值变化时触发
选择变化事件示例
焦点与失焦事件
focus事件:获得焦点时触发blur事件:失去焦点时触发
焦点与失焦事件示例
清空事件
clear事件:点击清空按钮时触发
清除事件示例
下拉框显示/隐藏事件
visible-change事件:下拉框显示状态变化时触发
下拉框显示/隐藏事件示例
搜索事件
search事件:输入搜索关键词时触发(仅在 filterable 为 true 时生效)
搜索事件示例
文档说明
支持的事件列表
| 事件名 | 说明 | 触发时机 | 参数 |
|---|---|---|---|
| update:modelValue | 绑定值更新事件,用于双向数据绑定 | 选择值变化时 | val: any |
| change | 选择变化事件 | 选择值变化时 | val: any |
| focus | 焦点事件 | 获得焦点时 | event: Event |
| blur | 失焦事件 | 失去焦点时 | event: Event |
| clear | 清空事件 | 点击清空按钮时 | event: Event |
| visible-change | 下拉框显示/隐藏事件 | 下拉框状态变化时 | val: boolean |
| search | 搜索事件 | 输入搜索关键词时(仅 filterable 为 true 时) | val: string |
事件使用方式
SunlightSelect 组件支持两种事件绑定方式:直接通过 v-on 绑定和通过 eventFunction 配置。
1. 直接通过 v-on 绑定事件
vue
<template>
<SunlightSelect
v-model="selectValue"
:item="{
placeholder: '请选择',
options: options,
clearable: true,
}"
@change="handleChange"
/>
</template>
<script setup>
import { ref } from "vue";
import { SunlightSelect } from "sunlight-ui";
import { ElMessage } from "element-plus";
const selectValue = ref("");
const options = [
{ label: "选项1", value: "option1" },
{ label: "选项2", value: "option2" },
{ label: "选项3", value: "option3" },
];
function handleChange(val) {
ElMessage.success("选择变化: " + val);
}
</script>2. 通过 eventFunction 配置事件
vue
<template>
<SunlightSelect
v-model="selectValue"
:item="{
placeholder: '通过配置绑定事件',
options: options,
eventFunction: {
change: val => {
ElMessage.success('配置事件触发: ' + val);
},
},
}"
/>
</template>
<script setup>
import { ref } from "vue";
import { SunlightSelect } from "sunlight-ui";
import { ElMessage } from "element-plus";
const selectValue = ref("");
const options = [
{ label: "选项1", value: "option1" },
{ label: "选项2", value: "option2" },
{ label: "选项3", value: "option3" },
];
</script>