vue中监听回车键最推荐使用@keyup.enter修饰符,适用于可聚焦的原生表单元素;第三方组件需加.native,vue 3 更倾向@keydown.enter.prevent,优先用key而非keycode判断。

Vue基础语法中监听回车键最直接、最推荐的方式是使用 @keyup.enter 按键修饰符,它语义清晰、写法简洁,且无需手动判断 key 值或处理兼容性问题。
直接在可聚焦元素上使用 @keyup.enter
适用于 <input>、<textarea></textarea> 等原生表单控件。元素必须处于 focus 状态,事件才会触发:
<input placeholder="按回车提交"><textarea></textarea>- 注意:不能直接写在
<div> 或普通容器上,因为它们默认不可聚焦,修饰符会失效 <h3>对封装组件(如 Element Plus)需加 .native</h3> <p>第三方 UI 组件(例如 <code><el-input></el-input>)内部封装了原生<input>,模板事件不会自动冒泡到根节点,所以要显式绑定原生事件:<el-input></el-input>- Vue 3 中更推荐用
v-model+@keydown.enter.prevent配合,避免 .native 的歧义
区分 keyup 和 keydown:按需选择时机
@keyup.enter在按键释放时触发,适合提交、搜索等“确认型”操作;@keydown.enter在按下瞬间触发,适合拦截默认行为(比如防止换行):- 表单提交常用
@keyup.enter,逻辑更自然 - 聊天框中想按回车发送、Shift+Enter 换行,应使用
@keydown.enter.prevent并配合event.shiftKey判断
避免 keyCode,优先用 key 字符串
keyCode 已被废弃,
event.key === 'Enter'是标准写法。Vue 的.enter修饰符底层正是基于这个判断,所以无需手动写条件分支,也无需担心大小写或平台差异(Mac 的 Return 键、Windows 的 Enter 键均匹配)。











