Javascript 侦听以编程方式安装的Vue组件发出的事件

Javascript 侦听以编程方式安装的Vue组件发出的事件,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我正在以编程方式在mixin中挂载Vue组件,以便将生成的HTML添加到地图弹出窗口中。这很好,但我不能听组件发出的事件,我不知道如何做到这一点,如果可以做到的话 以下是工作代码: import Vue from 'vue' import myComponent from 'components/myComponent' export default { methods: { makePopup(coordinates, data) { const popup = ne

我正在以编程方式在mixin中挂载Vue组件,以便将生成的HTML添加到地图弹出窗口中。这很好,但我不能听组件发出的事件,我不知道如何做到这一点,如果可以做到的话

以下是工作代码:

import Vue from 'vue'
import myComponent from 'components/myComponent'

export default {
  methods: {
    makePopup(coordinates, data) {
      const popup = new Vue({
        ...myComponent,
        parent: this,
        propsData: data
      }).$mount()

      const content = popup.$el.outerHTML

      this.$map.showPopup(coordinates, content)

      popup.$destroy()
    }
  }
}
这是可行的,但是如何(以及何时)监听myComponent发出的事件,以便在之后更新弹出内容?在我实例化/装载之后,这些事件似乎不会被触发。任何帮助都将不胜感激。提前谢谢


编辑:需要明确的是,这里出现了问题,因为在Vue实例上使用
$mount()
方法后,
myComponent
发出的事件似乎没有触发。我认为这与编译实例有关,但我真的不确定这是否是正确的路径,或者这是否可能。

当我设法找到正确的方法时,很好地回答了我自己的问题:事件确实被触发了,但我只是过早地销毁了组件(愚蠢的我)


您可以使用a或@max yes这是我通常做的事情,但在这里,组件是以编程方式安装的,这意味着该组件中发出的事件不会被触发。因此,这里的问题是,我如何确保他们被解雇,以便在我的方法中听取他们的意见
const popup = new Vue({
  ...myComponent,
  parent: this,
  propsData: data
}).$mount()

this.$map.showPopup(coordinates, popup.$el.outerHTML)

popup.$on('complete', () => {
  // update popup content code
  popup.$destroy()
})