我想知道是否可以从子组件发出事件并在父节点中侦听而不使用方便的@event {eventMame}语法。我正在使用一个引入此问题的插件。
我正在使用vuetable2组件并将操作附加到行,我必须执行以下操作:
{
name: '__component:custom-actions',
title: 'Actions',
titleClass: 'text-center',
dataClass: 'text-center'
}
我无法/不知道如何使用@将事件监听器附加到自定义操作组件。
我在创建的方法中尝试了以下内容:
created = () => {
this.$on('eventName', this.methodName');
}
但这似乎不起作用。
在我正在做的自定义操作组件中:
this.$emit('eventName');
答案 0 :(得分:1)
不要使用胖箭头来定义创建的钩子。 this
将指向window
,而不是Vue,this.methodName
和this.$on
都将是未定义的。使用
created(){
this.$on('eventName', this.methodName');
}
或
created: function(){
this.$on('eventName', this.methodName');
}
您可以使用总线通过多层组件进行通信。在您的组件之外,声明bus。
const bus = new Vue();
在嵌套组件中
bus.$emit('eventName');
在您的父母
中created(){
bus.$on('eventName', this.methodName');
}