You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vue渲染函数中定义事件修饰符?keyup.enter触发异常

问题原因及解决方法

你犯的核心错误是:Vue.withModifiers() 只支持添加事件修饰符(比如prevent、stop、self),并不支持enter这类按键修饰符,所以用它来限制回车键完全无效,导致所有按键都会触发keydown事件。

两种正确的实现方式

方式一:手动判断按键

在事件处理函数里直接检查按下的是不是回车键:

<html>
  <body>
    <div id="app"></div>
    <script src="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.prod.js"></script>
    <script>
      const app = Vue.createApp({
        render() {
          return Vue.h("input", { 
            onKeydown: (e) => {
              if (e.key === 'Enter') {
                console.log(e);
              }
            } 
          });
        },
      }).mount("#app");
    </script>
  </body>
</html>

方式二:使用Vue的按键修饰符语法(render函数专属写法)

在render函数中,按键修饰符可以直接通过事件名的后缀来声明,比如监听回车键的keydown事件,就写onKeydownEnter:

<html>
  <body>
    <div id="app"></div>
    <script src="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.prod.js"></script>
    <script>
      const app = Vue.createApp({
        render() {
          return Vue.h("input", { 
            onKeydownEnter: (e) => console.log(e)
          });
        },
      }).mount("#app");
    </script>
  </body>
</html>

内容的提问来源于stack exchange,提问作者Falko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 23:40:31