emit — send event from child. v-on — listen for event in parent.
Child component:
1<script setup>2const emit = defineEmits(["update", "delete"])34function handleClick() {5 emit("update", "new value")6}7</script>89<template>10 <button @click="handleClick">Click</button>11</template>
Parent component:
1<template>2 <Child @update="handleUpdate" @delete="handleDelete" />3</template>45<script setup>6function handleUpdate(value) {7 console.log("Updated:", value)8}910function handleDelete(id) {11 console.log("Deleted:", id)12}13</script>
Key differences: