Vue.js Vue应用程序能否捕捉到孩子';在js中发出了什么事件?

Vue.js Vue应用程序能否捕捉到孩子';在js中发出了什么事件?,vue.js,Vue.js,我是Vuejs的新成员。 通常Vue在向父级发送数据时使用事件。 比如说, Vue.component('child', { template: ` <div class="myitem"> <button v-on:click="senddata()"> Send Data </button> </div>`, methods:{ senddata:function(){

我是Vuejs的新成员。
通常
Vue
在向父级发送数据时使用
事件。
比如说,

Vue.component('child', {
 template: `
  <div class="myitem">
     <button v-on:click="senddata()">
        Send Data
     </button>
 </div>`,
   methods:{
      senddata:function(){
         this.$emit('data', 'testdata');
      }
   }
 })
这很有效。
但是我想在代码中添加
eventHandler

this.$refs.child.data().then(function(data){
   //According to the data..., the app want to process data...

});
像上面这样的代码是可能的吗

但是我想在代码中添加eventHandler

然后你需要使用;特别是:

mounted(){
this.$refs.child.$on('data',this.eventHandler);
},
方法:{
事件处理程序(数据){
...
}
},

在这个特定的示例中,您需要在
挂载的
钩子中执行此操作,因为子组件尚未在
创建的
钩子中创建。

可以像
这样动态添加vue组件。$refs.parent.add(child)
(抱歉,这与我的问题无关。)?我主要想添加,删除js代码中的所有组件。这可能吗?您不能(也不应该)以编程方式插入和删除这样的组件。我不能提供一个合适的答案,因为我需要知道你想要实现什么。你应该问一个新问题。我只是想根据条件显示不同的模态对话框。
methods: {
    eventHandler: function (data) {
       console.log('received data: ' + data);   
    }
}
this.$refs.child.data().then(function(data){
   //According to the data..., the app want to process data...

});