Vue.jsの$emit
を使用してカスタムイベントを発行することは、Vue.jsアプリケーション内でコンポーネント間の通信を可能にする強力な方法です。カスタムイベントを使用することで、子コンポーネントから親コンポーネントへのデータの伝達や、同じ階層の他のコンポーネントへの通知を行うことができます。
以下は、カスタムイベントを使用した基本的な例です。
親コンポーネント
<template>
<div>
<child-component @custom-event="handleCustomEvent"></child-component>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
methods: {
handleCustomEvent(payload) {
console.log('Received custom event with payload:', payload);
}
}
}
</script>
子コンポーネント
<template>
<button @click="sendCustomEvent">Click me!</button>
</template>
<script>
export default {
methods: {
sendCustomEvent() {
this.$emit('custom-event', { message: 'Hello from child component!' });
}
}
}
</script>
この例では、親コンポーネントが<child-component>
を含んでおり、その子コンポーネントからカスタムイベントcustom-event
を待ち受けています。子コンポーネントでは、ボタンがクリックされたときにsendCustomEvent
メソッドが呼び出され、$emit
を使用してcustom-event
を発行しています。親コンポーネントでは、@custom-event
ディレクティブを使用して、子コンポーネントからのcustom-event
を受け取り、handleCustomEvent
メソッドで受け取ったデータを処理しています。
カスタムイベントを使用することで、コンポーネント間でのデータの受け渡しや通知が可能になり、アプリケーションの柔軟性と再利用性が向上します。
コメント