首页 > 解决方案 > vue3中事件的自动案例转换

问题描述

我有一个发出多个事件的 Vue3 组件。我想在一个专用的回调对象中传递回调,如下所示:


// template section 

<!-- emits event-a and event-b in kebap-case -->
<my-component v-on="myCallbacks" />


// script section

const myCallbacks={
  'event-a': function() {  // kebap-case does *not* work
   ...
  },
  
  eventA: function() {    // camel-case works !
    ...
  },

  eventB: function() { 
    ...
  }
}

文档指出,在 Vue3 中,与 Vue2 不同,有一个自动事件名称转换(显然是 kebap-case)。

为什么我不能在回调中使用预期的 kebap-case?我是否错过了一个更合适的设计模式,可以替换这样的回调对象并且仍然简洁?回调对象的名称转换是标准行为还是会发生变化?它是否记录在某处?

我几乎没有在文档中找到关于在v-on没有事件说明符的情况下使用的任何内容(即v-on="callback",而不是v-on:event-a="eventA" v-on:event-b="eventB")。

//更新Vue2 文档Vue3 文档中,他们提到这被称为“对象语法”——然而,没有写任何关于大小写转换的内容。

<!-- object syntax (2.4.0+) -->
<button v-on="{ mousedown: doThis, mouseup: doThat }"></button>

标签: vuejs3

解决方案


推荐阅读