emit
π μ μ
Vue.jsμμ emitμ νμ μ»΄ν¬λνΈμμ μμ μ»΄ν¬λνΈλ‘ μ΄λ²€νΈλ₯Ό μ λ¬νλ λ° μ¬μ©λλ€. μ΄κ²μ λΆλͺ¨-μμ κ° ν΅μ μ μΌλΆλ‘μ, μμ μ»΄ν¬λνΈμμ μΌμ΄λλ μ΄λ²€νΈλ₯Ό λΆλͺ¨ μ»΄ν¬λνΈμμ κ°μ§νκ³ μ²λ¦¬ν μ μκ² ν΄μ€λ€.
β μμ μ½λ
ChildComponent.vue (μμ μ»΄ν¬λνΈ)
<template>
<button @click="notifyParent">Click me!</button>
</template>
<script>
export default {
methods: {
notifyParent() {
this.$emit('child-event', 'Hello from child!');
}
}
};
</script>
ParentComponent.vue (λΆλͺ¨ μ»΄ν¬λνΈ)
<template>
<div>
<p>{{ messageFromChild }}</p>
<!-- μμ μ»΄ν¬λνΈλ₯Ό μ¬μ©νκ³ , μμ μ»΄ν¬λνΈμμ λ°μνλ μ΄λ²€νΈλ₯Ό κ°μ§ν©λλ€. -->
<child-component @child-event="handleChildEvent"></child-component>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
data() {
return {
messageFromChild: ''
};
},
methods: {
handleChildEvent(message) {
this.messageFromChild = message;
}
}
};
</script>