el-input中change事件造成的坑

el-input中change事件造成的坑

一、change事件定义

仅在输入框失去焦点或用户按下回车时触发

二、如果仅回车时候触发

javascript 复制代码
<el-input
  v-model.trim="questionInput"
  placeholder="请输入你的问题,按回车发送"
  prefix-icon="el-icon-search"
  class="custom-placeholder-recommend"
  @keyup.native.enter="handleRecommend('input', '', $event)"
  clearable
>
//@click.stop  或者  @click.prevent 
</el-input>


handleRecommend(type, name, event) {
  if (event) {
    event.stopPropagation(); // 阻止事件冒泡
 
    //@keydown.enter.prevent
    event.preventDefault();  // 阻止默认的换行行为
 }
},
javascript 复制代码
在 Vue.js 中,@keyup.enter 和 @keyup.native.enter 是两种不同的事件监听方式,具有以下区别:

@keyup.enter:
@keyup.enter 是 Vue 的内置事件修饰符,用于监听键盘按键事件。在这种情况下,.enter 表示监听回车键(Enter 键)的按键事件。
当使用 @keyup.enter 时,Vue 将会在组件上绑定一个处理器来监听键盘按键事件,并只在按下回车键时触发对应的函数。

@keyup.native.enter:
@keyup.native.enter 是基于原生 DOM 事件的方式来监听键盘按键事件,且将聚焦在元素上的第一个子元素。
使用 @keyup.native 可以绑定到组件的根元素上,而不是组件自己处理键盘事件。这样可以确保即使 <el-input> 组件内部的某些元素也能够响应键盘事件。

添加 .native 修饰符后,在父组件中触发的键盘事件能够穿透到子组件,并且不需要在子组件中再次声明键盘事件监听器。
因此,如果您想在父组件中处理特定的键盘事件并确保该事件能够传递到子组件,可以使用 @keyup.native.enter。而 @keyup.enter 则是直接在当前组件上监听回车键事件。根据需要,选择合适的方式来监听键盘事件。
相关推荐
泥秋哥13 小时前
微前端-Module Federation运行时工具
前端·架构
小黑蛋91214 小时前
Nacos 集群部署方案
前端
PILIPALAPENG14 小时前
第4周 Day 4:Agent 工作流模式——编排复杂流程
前端·人工智能·python
KaMeidebaby14 小时前
卡梅德生物技术快报|蛋白的过表达质粒构建与生信分析实验全流程复盘
前端·数据库·其他·百度·新浪微博
ricardo197314 小时前
代码分割 + 路由懒加载 + 字体子集化:前端瘦身三板斧
前端·面试
dsyyyyy110114 小时前
CSS 2D 效果、3D 效果 与 Animation 总结
前端·css·3d
jerrywus14 小时前
Vibe Coding 实战:三天,一个人,一个 Claude Session Viewer——给三家 AI CLI 当统一会话浏览器
前端·claude·gemini
GISer_Jing14 小时前
Three.js渲染架构:从WebGL到WebGPU的演进
javascript·架构·webgl
lichenyang45314 小时前
HarmonyOS AI 聊天模块架构复盘:从 UI、状态、Controller 到 Provider、SSE 与业务卡片
前端
px不是xp14 小时前
【灶台导航】个人中心模块开发实战
javascript·微信·腾讯云·notepad++