ElSelect 组件的 onChange 和 onInput 事件的区别
偶然遇到一个问题,在 ElSelect 组件中设置 filterable 属性后,监测不到复制粘贴的内容,也就意味着不能调用接口,下拉框内容为空。
简要代码如下:
<ElSelectstyle="width: 256px"multiplev-model={siteIdList}clearablefilterableremoteremoteMethod={getSiteList}placeholder="请输入门店名称">{siteList.value.map((item) => (<ElOption label={item.siteName} value={item.siteId} />))}
</ElSelect>
对此进行分析。
1. 直观区别
在 ElSelect 组件中,onInput 和 onChange 都是用于监听用户选择内容的事件,区别在于:
1、onInput 事件
触发时机:onInput 事件在用户每次选择新选项时都会立即触发,即每当输入值发生变化(无论是添加or移除),都会触发这个事件。
适用场景:通常用于实时响应用户输入,如动态更新页面数据、过滤、自动填充等。其触发频率较高,更适合于即时性要求较高的场景。
2、onChange 事件
触发时机:onChange 事件仅在用户选择内容发生最终变化并确认时触发。例如,在用户点击选项列表中的某一项完成选择后,onChange 才会触发。重复选择同一个选项不会触发 onChange。
适用场景:更适合在选择操作完成后再进行的逻辑处理,例如提交表单、更新数据等。因为它只在确认选择后触发,频率较低,适合用于非即时响应的场景。
2. 事件挂载
在 ElSelect 组件中,onInput 和 onChange 事件的挂载有明显的不同,这关系到它们在 Vue 中的实现和具体作用。
1、onInput 事件
挂载位置:onInput 事件实际上是与 v-model 绑定的默认事件。在 Vue 中,v-model 会自动绑定组件的 input 事件来更新数据,因此当 ElSelect 的选择值发生变化时,它会触发 onInput 事件,将新值传递给 v-model 绑定的数据。这点需要额外注意📢下!
🌰:
<el-select v-model="selectedValue" @input="handleInput"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"/>
</el-select>
当 selectedValue 更新时,@input 会自动触发,实时同步数据。
2、onChange 事件
挂载位置:onChange 是 ElSelect 自带的事件监听器,与 v-model 没有直接关系。它可以单独挂载在组件实例上,用于检测最终选择的变化。这点需要额外注意📢下!
🌰:
<el-select v-model="selectedValue" @change="handleChange"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"/>
</el-select>
当用户的选择发生最终变化后,@change 会触发 handleChange 方法,而不会在每次切换选项时触发。
总结

3. 解决方法
针对上述分析,可以在 ElSelect 组件上使用 onInput 事件,监听内容的改变。
<ElSelectref={storeRef}style="width: 256px"filterableremoteremoteMethod={getSiteList}onInput={(e) => { handleInput(e?.data || ''); }}multipleclearablev-model={siteIdList}placeholder="请输入门店名称">{siteList.value?.map((item) => (<ElOption label={item.siteName} value={item.siteId} />))}
</ElSelect>
然后在 handleInput 事件上调用 storeRef 的 remoteMethod 事件进一步处理,由此成功解决。
const handleInput = debounce((query, type) => {storeRef.value.remoteMethod(query);
}, 300);相关文章:
ElSelect 组件的 onChange 和 onInput 事件的区别
偶然遇到一个问题,在 ElSelect 组件中设置 filterable 属性后,监测不到复制粘贴的内容,也就意味着不能调用接口,下拉框内容为空。 简要代码如下: <ElSelectstyle"width: 256px"multiplev-model{siteIdL…...
加密与数据提取:保护隐私的新途径
加密与数据提取:保护隐私的新途径 在数字化时代,数据已成为驱动社会进步和经济发展的关键要素。然而,随着数据量的爆炸性增长,个人隐私保护成为了一个亟待解决的问题。如何在利用数据价值的同时,确保个人隐私不被侵犯…...
博客摘录「 宋宝华:Linux文件读写(BIO)波澜壮阔的一生」2024年11月1日
同时内核会给第2页标识一个PageReadahead标记,意思就是如果app接着读第2页,就可以预判app在做顺序读,这样我们在app读第2页的时候,内核可以进一步异步预读。 每个bio对应的硬盘里面一块连续的位置,每一块硬盘里面连续…...
使用华为云数字人可以做什么
在数字化和智能化快速发展的今天,企业面临着如何提升客户体验、优化运营效率的挑战。华为云数字人作为一种创新的智能交互解决方案,为企业提供了全新的可能性,助力企业在各个领域实现智能化升级。 提升客户服务体验 华为云数字人能够模拟真…...
leetcode刷题记录——(十六)349. 两个数组的交集
(一)问题描述 . - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/intersection-of-two-arrays/ …...
vue3实现规则编辑器
组件用于创建和编辑复杂的条件规则,支持添加、删除条件和子条件,以及选择不同的条件类型。 可实现json数据和页面显示的转换。 代码实现 : index.vue: <template><div class"allany-container"><div class"co…...
【快速上手】pyspark 集群环境下的搭建(Standalone模式)
目录 前言 : 一、spark运行的五种模式 二、 安装步骤 安装前准备 1.第一步:安装python 2.第二步:在bigdata01上安装spark 3.第三步:同步bigdata01中的spark到bigdata02和03上 三、集群启动/关闭 四、打开监控界面验证 前…...
中文NLP地址要素解析【阿里云:天池比赛】
比赛地址:中文NLP地址要素解析 https://tianchi.aliyun.com/notebook/467867?spma2c22.12281976.0.0.654b265fTnW3lu长期赛: 分数:87.7271 排名:长期赛:56(本次)/6990(团体或个人)方案…...
使用AddressSanitizer内存检测
修改cmakelist.txt,在project(xxxx)后面追加: option(MEM_CHECK "memory check with AddressSanitizer" OFF) if(MEM_CHECK)set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitizeaddress")set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS…...
11月1日星期五今日早报简报微语报早读
11月1日星期五,农历十月初一,早报#微语早读。 1、六大行今日起实施存量房贷利率新机制。 2、谷歌被俄罗斯罚款35位数,罚款远超全球GDP。 3、山西吕梁:女性35岁前登记结婚,给予1500元奖励。 4、我国人均每日上网时间…...
实用篇:Postman历史版本下载
postman历史版本下载步骤 1.官方历史版本发布信息 2.点进去1中的链接,往下滑动;选择你想要的版本 例如下载v11.18版本 3.根据操作系统选择 mac:mac系统postman下载 window:window系统postman下载 4.在old version里找到对应版本下载即可 先点击download 再点击free downlo…...
微服务实战系列之玩转Docker(十七)
导览 前言Q:如何实现etcd数据的可视化管理一、创建etcd集群1. 节点定义2. 集群成员2.1 docker ps2.2 docker exec2.3 etcdctl member list 二、发布数据1. 添加数据2. 数据共享 三、可视化管理1. ETCD Keeper入门1.1 简介1.2 安装1.2.1 定义compose.yml1.2.2 启动ke…...
操作系统-实验报告单(1)
目录 1 实验目标 2 实验工具 3 实验内容、实验步骤及实验结果 一、安装虚拟机及Ubuntu 5、*存在虚拟机不能安装的问题 二、Ubuntu基本操作 1、桌面操作 2、终端命令行操作 三、在Ubuntu下运行C程序 3、*Ubuntu中编写一个Hello.c的主要程序 4 实验总结 实 验 报 告…...
rom定制系列------小米8青春版定制安卓14批量线刷固件 原生系统
💝💝💝小米8青春版。机型代码platina。官方最终版为 12.5.1安卓10的版本。客户需要安卓14的固件以便使用他们的软件。根据测试,原生pixeExpe固件适配兼容性较好。为方便客户批量进行刷写。修改固件为可fast批量刷写。整合底层分区…...
CATIA许可证常见问题解答
在使用CATIA软件的过程中,许可证问题常常是用户关心的焦点。为了帮助大家更好地理解和解决这些问题,我们整理了一份CATIA许可证常见问题解答,希望能为您提供便捷的参考。 问题一:如何激活CATIA许可证? 解答:…...
PySpark Standalone 集群部署教程
目录 1. 环境准备 1.1 配置免密登录 2. 下载并配置Spark 3. 配置Spark集群 3.1 配置spark-env.sh 3.2 配置spark-defaults.conf 3.3 设置Master和Worker节点 3.4 设配置log4j.properties 3.5 同步到所有Worker节点 4. 启动Spark Standalone集群 4.1 启动Master节点 …...
【源码+文档】基于SpringBoot+Vue旅游网站系统【提供源码+答辩PPT+参考文档+项目部署】
作者简介:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容:🌟Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…...
9.排队模型-M/M/1
1.排队模型 在Excel中建立排队模型可以帮助分析系统中的客户流动和服务效率。以下是如何构建简单排队模型的步骤: 1.确定模型参数 到达率(λ):客户到达系统的平均速率(例如每小时到达的客户数)。服务率&…...
【GO学习笔记 go基础】编译器下载安装+Go设置代理加速+项目调试+基础语法+go.mod项目配置+接口(interface)
编译器下载&安装 下载并安装go1.23.2.windows-amd64.msi默认安装再C:\Program Files\Go\ PS C:\Users\kingchuxing\Documents> go version go version go1.23.2 windows/amd64Go设置GOPROXY国内加速 windows // 启用 Go Modules 功能 PS C:\Users\kingchuxing…...
从0开始学习shell脚本
了解Shell和Shell脚本 Shell:Shell是一个命令解释器,用来执行用户输入的命令。常用的Shell包括Bash、Zsh、Ksh等。Linux默认的Shell通常是Bash。 Shell脚本:Shell脚本是由一系列命令组成的文件,脚本可以运行一连串命令ÿ…...
深度测评|2026AI短剧出海服务商
2026 年短剧出海进入全球化传播阶段,声画同步与多语种适配成为短剧出海的基础核心能力,更是保障海外受众观剧体验的关键要素。相较于国内市场,海外受众来自不同的语言区域,对多语种配音的自然度、口型同步的精准度、台词翻译的适配…...
像素语言·维度裂变器:5分钟上手,像玩游戏一样改写你的文字
像素语言维度裂变器:5分钟上手,像玩游戏一样改写你的文字 1. 认识你的文字冒险工坊 像素语言维度裂变器是一款将AI文本改写变成像素冒险游戏的创意工具。它基于MT5-Zero-Shot-Augment引擎,但完全颠覆了传统AI工具的刻板印象,把枯…...
Kazumi终极解析:如何用自定义规则引擎和实时超分辨率技术重塑动漫观看体验
Kazumi终极解析:如何用自定义规则引擎和实时超分辨率技术重塑动漫观看体验 【免费下载链接】Kazumi 基于自定义规则的番剧采集APP,支持流媒体在线观看,支持弹幕,支持实时超分辨率。 项目地址: https://gitcode.com/gh_mirrors/k…...
降AI后怎么做知网查重不超标:降AI和查重双通过的操作方法
降AI后怎么做知网查重不超标:降AI和查重双通过的操作方法 被问了太多次降AI后查重相关的问题,写一篇完整教程。 主要工具是嘎嘎降AI(www.aigcleaner.com),4.8元。第一次用的话有些细节知道和不知道差别挺大的。 操作…...
C 里面如何使用链表 list
1. 学生时代, 那会学习 C 数据结构, 比较简单 struct person {int id;char name[641];struct person * next; }; 类似上面这样, 需要什么依赖 next 指针来回调整, 然后手工 print F5 去 debug 熬. 2. 刚工作青年时代, 主要花活, 随大流类似 #pragma once#include "stru…...
WebDataset数据压缩算法:Zstd、LZ4与Snappy性能对比
WebDataset数据压缩算法:Zstd、LZ4与Snappy性能对比 【免费下载链接】webdataset A high-performance Python-based I/O system for large (and small) deep learning problems, with strong support for PyTorch. 项目地址: https://gitcode.com/gh_mirrors/we/w…...
深入浅出理解注意力机制:原理、实战、应用及训练与推理阶段差异
深入浅出理解注意力机制:原理、实战、应用及训练与推理阶段差异 摘要:注意力机制是深度学习领域的核心创新,更是Transformer架构的灵魂,其灵感源自人类的“选择性关注”能力,解决了传统模型长距离依赖捕捉不足、并行计…...
MAX30101嵌入式驱动开发:寄存器配置与PPG信号处理
1. MAX30101嵌入式驱动库深度解析:从寄存器级控制到心率血氧算法集成MAX30101是Maxim Integrated(现为Analog Devices)推出的高集成度光学生物传感器模块,专为可穿戴设备和便携式医疗监测系统设计。该芯片集成了绿光/红光/红外LED…...
7步构建AI绘画流水线:Krita-AI-Diffusion全能力解析
7步构建AI绘画流水线:Krita-AI-Diffusion全能力解析 【免费下载链接】krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. 项目地址: https://gitcode.c…...
相控阵雷达技术解析:从THAAD到5G应用
1. 萨德系统概述:现代反导防御的核心力量THAAD(Terminal High Altitude Area Defense)系统是美国陆军研发的末端高空区域防御系统,专门用于拦截处于末段飞行阶段的短程和中程弹道导弹。这套系统自2008年部署以来,已成为…...
