从Vue中的另一个组件调用组件方法

时间:2018-01-15 12:27:18

标签: typescript vue.js

我有3个名为:Main,Menu,Area作为Vue对象的类,在html中它们的设计如下所示

<div>
    <main>
         <menu :area="area"></menu>
         <area></area>
    </main>
<div>

如上所述,菜单组件使用区域组件作为prop,并且一些功能在菜单组件中工作以改变区域组件中的某些内容。我在主类

中分配了如下所示的区域属性
import Vue from "vue";
import { Component, Prop } from 'vue-property-decorator';
import Area from "./area.vue";
import Menu from "./menu.vue";

@Component({
    components: {
        Menu,
        Area
    }
})
export default class Main extends Vue {
    constructor() {
        super();
        this.area= new Area();
    }
    area: area;
}

然而,当我点击菜单中的一个按钮时,它应该在html上更改区域组件的属性(它实际上正在改变)。也许是因为构造函数中的实例化区域正在创建两个不同的实例,这就是答案。但我不知道如何将它们用作单个物体

由于

1 个答案:

答案 0 :(得分:0)

由于某些代码缺失,我不确定我是否理解正确。 但通常,当您与父组件通信时,这是通过events完成的,您不应该直接操纵父对象状态。见the documentation。如果您有non-Parent-Child Communication,则应使用简单的Vue实例作为Bus