Play Ground

[vue.js] Eventbus 만들기 본문

Programming/Vue.js

[vue.js] Eventbus 만들기

haeru 2018. 10. 22. 18:32

이벤트버스는 vuex사용하지 않은 상태로

부모자식간에 데이터를 주고받기 위해 사용하였는데,

사용하다보니 vuex를 사용하는 것이 가장 베스트일거라는 생각이 들었다.



main.js

Vue.prototype.$EventBus = new Vue()


a.vue (이벤트버스 발송하는 곳)

export default {

...

methods: {

sendEventbus: function() {

this.$EventBus.$emit("result", "오오")

}

}

...

}

<button @click="sendEventbus">오오 보내기</button>

이런식으로 연결해놓는다.



b.vue (이벤트버스 받는 곳)

export default {

...

created() {

this.$EventBus.$on("result", function(data){

console.log(data)

})

}

...

)

이벤트버스는 created에서 받아야한다. 마치 운영체제에서 시그널 받길 기다리는 친구들처럼(?) 이벤트 버스를 받길 기다리면 된다.

그리고 result라는 이벤트버스가 emit될때마다 on으로 받아준다.