对于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实例,然后您可以发出该组件听到的事件。

09-19 03:27