2017-10-17 82 views
0
<root> 
    <my-button @click="save()"/> 
    <my-form/> 
</root> 

my-form.vue 

methods:{ 
    save(){} 
} 

如何通過我的按鈕調用保存()我的形式Vue公司電話兄弟姐妹的方法

+2

的Emit和監聽事件,或使用Vuex。 https://vuejs.org/v2/guide/components.html#Non-Parent-Child-Communication – ceejayoz

回答

2

您可以使用事件總線:

let EventBus = new Vue(); 

let MyButton= Vue.extend({ 
    name: "my-button", 
    props: ["what"], 
    template: ` 
    <button class="btn btn-md btn-success the-button" @click="save()">Sender: {{what}}</button> 
    `, 
    methods: { 
    save: function(){ 
     EventBus.$emit("form.save", //pass payload here); 
    } 
    } 
}); 

Vue.component("my-button", MyButton); 

***my-form.vue:**** 

created(){ 
    EventBus.$on('form.save', (payload)=>{ 
     this.save(payload) 
    }); 
}, 
methods:{ 
    save(payload) {} 
} 

全部工作示例:https://jsfiddle.net/arvidkahl/gxdn6ycv/17/

+0

兄弟姐妹是否也有父母子女關係? –

+2

沒關係,只要你使用相同的EventBus,他們都聽相同的事件 – Tomer