0

https://vuejs.org/v2/guide/render-function.html#The-Data-Object-In-Depth的 Vue 文档中,有对“on”和“nativeOn”的解释:

// Event handlers are nested under `on`, though
  // modifiers such as in `v-on:keyup.enter` are not
  // supported. You'll have to manually check the
  // keyCode in the handler instead.
  on: {
    click: this.clickHandler
  },
  // For components only. Allows you to listen to
  // native events, rather than events emitted from
  // the component using `vm.$emit`.
  nativeOn: {
    click: this.nativeClickHandler
  },

我们正在尝试从我们创建的自定义组件中侦听“输入”事件。我们注意到在 on 属性中没有检测到该事件,因此我们尝试了 nativeOn 并且我们惊讶地发现这有效。我们很惊讶,因为文档说 nativeOn:

允许您收听 // 本地事件,而不是使用 vm.$emit 从组件发出的事件 //

在这种情况下,我们使用 vm.$emit 从(自定义)组件发出的事件。

这是我们的代码片段,展示了上述内容:

on: {
    input: (event) => {
        console.log('hi'); // We did not receive "hi" in the console
    }
},
nativeOn: {
    input: (event) => {
        console.log('hi2'); // We did receive "hi2" in the console
    }

任何关于我们为什么需要 nativeOn 来监听来自自定义组件的“输入”事件,或者何时使用 nativeOn 与 on 以及其中的差异的任何说明都将不胜感激。提前致谢!

4

0 回答 0