Vue.js
In Vue.js 3, `$emit` is a mechanism for firing events from a child component to a parent component to transmit data or trigger actions.
$emit
Vue.js 3における $emit は、子コンポーネントから親コンポーネントにイベントを送るための機能です。これにより、子コンポーネントがデータやアクションを親コンポーネントに伝達できます。
<div id="app">
<child-component @custom-event="handleEvent"></child-component>
</div>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
<!-- JavaScript code here -->
</script>
const { createApp } = Vue;
// 子コンポーネント
const Childcomponent = {
template: `
<button @click="emitEvent">Event Send</button>
`,
methods: {
emitEvent() {
this.$emit('custom-event', 'Hello from child!');
}
}
};
// 親コンポーネント
createApp({
components: {
'child-component': Childcomponent
},
methods: {
handleEvent(message) {
alert(message);
}
}
}).mount('#app');
- CDNの読み込み
- <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> で Vue.js 3を読み込みます。
- 子コンポーネント
- ChildComponentはボタンを含んでおり、クリックすると emitEventメソッドが呼ばれ、$emitを使って親コンポーネントにカスタムイベント custom-eventを送信します。
- 親コンポーネント
- handleEventメソッドを使って、子コンポーネントから送信されたイベントを受け取り、そのデータ(この場合は "Hello from child!")を表示します。
このように、$emitを使うことで子コンポーネントから親コンポーネントにイベントとデータを伝えることができます。