Skip to content

事件处理

事件处理

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>