Испускание событий в Vue

Как вы уже знаете, данные движутся от родительских компонентов к дочерним. Давайте посмотрим теперь, как дочерние компоненты могут общаться с родительскими. Это делается с помощью испускания событий. Давайте посмотрим на практике.

Пусть в родительском компоненте есть некоторый метод:

methods: { func() { alert('xxx'); } }

Передадим этот метод параметром в дочерний компонент:

<template> <User @show="func" /> </template>

Пропишем испускаемое событие в настройке emits:

export default { emits: ['show'], data() { return { } } }

Давайте теперь в дочернем компоненте сделаем кнопку, которая будет обрабатывать клик по ней:

<template> <button @click="handle">btn</button> </template>

Сделаем обработчик клика:

methods: { handle() { } }

Давайте теперь в обработчике клика заставим вызваться родительскую функцию. Для этого испустим событие с помощью функции $emit, ее параметром указав имя испускаемого события:

methods: { handle() { this.$emit('show'); } }

Передайте в дочерний компонент две функции. Сделайте в дочернем компоненте две кнопки, каждая из которых будет вызывать одну из переданных функций.



Чат с GPT Компилятор