CommunicationHub
- 일반 mixin, 부모가 아닌 부모 < -> 하위 통신 (예 : 귀하의 경우)의 구현에 $on
- 메소드를 사용할 수 있습니다.
예를 들어 두 개의 Vue 루트 응용 프로그램이 있습니다 (RootAppA
및 RootAppB
). 와,
let CommunicationHub = new Vue();
Vue.mixin({
data: function() {
return {
communicationHub: CommunicationHub
}
}
});
지금 당신이 RootAppA
에서 $emit
-method와 사용자 정의 이벤트를 방출하여 데이터를 보낼 수 있으며, RootAppB
이 이벤트에 가입하여이 데이터를 얻을 : 그들 사이의 의사 소통을하려면 다음 코드를 CommunicationHub
믹스 인을 만들 수 있습니다 방법 $on
: 그런데
let RootAppA = {
methods: {
sendData(){
this.communicationHub.$emit('customEvent', {foo: 'bar', baz: 1, comment: 'custom payload object'});
}
}
}
let RootAppB = {
created(){
this.communicationHub.$on('customEvent', (payload) => {
console.log(payload); //{foo: 'bar', baz: 1, comment: 'custom payload object'}
});
}
}
는 CommunicationHub 패턴이 더 큰 애플 리케이션을위한 매우 유연한 솔루션이 아니라고 언급 해주십시오. 따라서 응용 프로그램이 자랄 경우 Vuex -library (previous so-answer의 예제 참조)
을 사용하는 것이 좋습니다.