javascript - VueJS 气泡组件事件

标签 javascript vue.js

我正在尝试制作一个(自定义 Canvas 元素的)Vue 组件,但发现该组件的常规事件似乎不会冒泡到父级。我明显做错了什么吗?

如果可以避免的话,我真的不想从组件中发出所有可能的 HTML 事件。如果还不清楚:我不是在谈论自定义事件 - 只是 onmousemove 等。

TIA

<div id="app">
  <xon-canvas @mousemove="handleMove"></xon-canvas>
</div>
<小时/>
Vue.component('XonCanvas', {
  template: '<canvas width="500" height="500"></canvas>'
  })

new Vue({
  el: '#app',
  methods: {
    handleMove (event) { console.log("I worked!") }
  }
});

CodePe Code

最佳答案

一个快速修复方法是添加 v-on="$listeners"

Vue.component('XonCanvas', {
  template: '<canvas v-on="$listeners" width="500" height="500"></canvas>'
  }
)

https://codepen.io/ittus/pen/mKWyxZ

关于javascript - VueJS 气泡组件事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50789621/

相关文章:

javascript - 使用方括号表示法访问具有 "n"级深度对象的嵌套对象

javascript - 为什么我在 Element 中单击脚本不会转到 chrome beta 40 开发工具中的源面板

javascript - 为什么使用 div 不使用 bootstrap 4 堆叠 div

javascript - 如何在 v-datatable 中使用带有动态数组的 v-switches v-model

javascript - VueJS : Using x-template for a sub-component inside a component

javascript - Google Sheets Appscript 弹出提示响应并隐藏工作表,直到响应正确

javascript - 重叠项目的点击事件

javascript - 将 "this"传递到嵌套数据函数 Vuejs

javascript - 从 VUE.js 中的方法设置数据中的对象

javascript - 神秘鼠标事件关闭 jQuery UI 对话框