March 06, 2020
Vue.component('child-component', {
props: ['propsName],
});
<child-component v-bind:propsName="value"></child-component>
이벤트를 발생시켜 (event emit) 상위 컴포넌트에 신호를 보낸다.
// 이벤트 발생
this.$emit('eventName')
// 이벤트 수신
<child-component v-on:eventName="상위 컴포넌트의 메서드명"></child-component>
<div id="app">
<child-component></child-component>
</div>
<script>
var eventBus = new Vue()
Vue.component('child-component', {
template:
'<div>하위 컴포넌트 영역.<button v-on:click="showLog">show</button></div>',
methods: {
showLog: function() {
eventBus.$emit('triggerEventBus', 100)
},
},
})
var app = new Vue({
el: '#app',
created: function() {
eventBus.$on('triggerEventBus', function(value) {
console.log('이벤트를 전달받음. 값: ', value)
})
},
})
</script>