ตัวอย่างการใช้ Emits เพื่อส่ง event ใน component ไปยัง parent

มาดูตัวอย่างการใช้ Emits เพื่อส่ง event ใน component ไปยัง parent กัน

ในการเขียน component บางครั้ง เราอาจจะต้องการส่งค่า หรือส่ง event บางอย่างส่งไปให้ parent ที่เรียกใช้ เราสามารถใช้ emits ได้ ตามตัวอย่าง

<script setup>
// declare emitted events
const emit = defineEmits(['response'])

// emit with argument
emit('response', 'hello from child')
</script>

จากโค้ดใน emit() พารามิเตอร์แรก จะเป็นชื่อที่เราส่งกลับไปให้ parent และพารามิเตอร์ตัวที่สองเป็นค่าหรือ event ที่ส่งกลับไป

ใน parent เราก็จะเรียกใช้ได้ โดยใช้ v-on ตามตัวอย่างนี้

<ChildComp @response="(msg) => childMsg = msg" />

ตัวอย่างแบบเต็ม

ตัวอย่างโค้ดใน component

<script setup>
const emit = defineEmits(['response'])

emit('response', 'hello from child')
</script>

<template>
  <h2>Child component</h2>
</template>

ส่วนใน parent ที่เราเรียกใช้ ก็จะเป็นประมาณนี้

<script setup>
import { ref } from 'vue'
import ChildComp from './ChildComp.vue'

const childMsg = ref('No child msg yet')
</script>

<template>
  <ChildComp @response="(msg) => childMsg = msg" />
  <p>{{ childMsg }}</p>
</template>


Copyright © 2023 Devcode Code Example - Powered by www.doesystem.com