对于VueJS 2.0项目,我在父组件上具有以下内容
<template>
<child></child>
<button @click="$emit('childEvent)"></button>
</template>
在子组件上,我有:
{
events: { 'childEvent' : function(){.... },
ready() { this.$on('childEvent',...) },
methods: { childEvent() {....} }
}
单击按钮似乎无济于事。我是否需要创建一个父方法然后将其发送给 child ?我使用的是vuejs 1.,但现在我对父级与子级通信的工作方式感到困惑
最佳答案
尽管其他答案是正确的,但通常可以使用数据驱动的方法。
我将为寻求该问题答案的任何人(除了 Prop 以外)都添加此内容。当试图将焦点放在自定义表单组件内的特定输入上时,我遇到了类似的问题。为此,我必须给自定义组件一个ref然后执行此操作。
this.$refs.customInput.$emit('focus');
//or
this.$refs.customInput.directlyCallMethod();
这将访问子项的vue实例,然后您可以发出该组件听到的事件。