\n\n\n \n\n```\n\n```vue\n\n\n\n\n \n Всего: {{ total }}\n\n```\n\n## Options API\nВ шаблоне или методах: `$emit('increment', payload)`. У родителя — `v-on:increment` / `@increment=\"handler\"`.\n\n## Практика\n\n- Имена событий в шаблоне — kebab-case; для `v-model` на компоненте — `update:modelValue`.\n- Валидация emit через `defineEmits({ increment: (n) => typeof n === 'number' })` помогает ловить ошибки в dev.\n- Каскад emit через 5 уровней — сигнал вынести состояние в Pinia / provide-inject / поднять store выше.\n\n## Итог\nChild → parent = `emit` + listener. Это база кастомных контролов и симметрия к props."}}}
Загрузка…
