$emit
と v-on
は、Vue.jsでコンポーネント間のイベント通信を行うための重要な機能です。
$emit:
$emit
は、Vue.jsのコンポーネントでカスタムイベントを発行するためのメソッドです。- 子コンポーネントから親コンポーネントへのデータの伝達やイベントの通知などに使用されます。
$emit
を使用することで、親コンポーネントが子コンポーネントの特定の動作や状態を監視できます。
<!-- 子コンポーネント -->
<template>
<button @click="sendMessage">Click me!</button>
</template>
<script>
export default {
methods: {
sendMessage() {
this.$emit('message', 'Hello from child component!');
}
}
}
</script>
v-on:
v-on
ディレクティブは、イベントリスナーをコンポーネントに追加するために使用されます。- HTML要素でイベントを検知し、Vue.jsのメソッドや式を呼び出します。
v-on
を使用して、親コンポーネントが子コンポーネントからのカスタムイベントをリッスンし、それに応じて処理を行います。
<!-- 親コンポーネント -->
<template>
<child-component @message="handleMessage"></child-component>
</template>
<script>
export default {
methods: {
handleMessage(message) {
console.log('Received message:', message);
}
}
}
</script>
$emit
と v-on
を組み合わせることで、親子コンポーネント間や同じ階層のコンポーネント間でのデータの受け渡しや通信を効果的に行うことができます。これにより、Vue.jsアプリケーション内でのコンポーネント間の結合度が向上し、コードの再利用性と保守性が高まります。
コメント