부모 -> 자식 component 간 통신 방법 중 가장 엘레강스한 통신 방법이 무엇인지요?
검색해보면 부모 자식 간 component 통신 방법이 무수히 많네요.
자식이 부모에게 이벤트를 던지는 방법은 굉장히 쉬운데,
부모가 자식에게 이벤트를 내려주는 방법은 다소 꼼수를 쓰는 방법들인 것 같습니다.
저는 개인적으로는 그냥 글로벌 이벤트 버스를 만들어서 아래처럼 활용하고 있습니다.
// app.js
Vue.prototype.$eventHub = new Vue();
// parent.js
methods: {
changeName() {
this.$eventHub.$emit('change-name', this.newName);
}
}
// child.js
created() {
this.$eventHub.$on('change-name', this.changeName);
},
그런데 글로벌 이벤트를 사용하면 모든 컴포넌트가 이벤트의 청취가 가능할 것이라서 그렇게 좋은 방법으로 생각이 되지 않는데, 다른 엘레강스한 통신 방법이 있을까요?