Как занести данные из дочернего элемента в родительский?

В Vue.js, чтобы передать данные из дочернего компонента в родительский, используется механизм "emit" (излучение) событий.

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

В дочернем компоненте необходимо сначала создать пользовательское событие, используя директиву emits (в версии Vue.js 3) или опцию emits (в версии Vue.js 2). Например:

// Версия Vue.js 3
<template>
  <button @click="sendData">Отправить данные</button>
</template>

<script>
export default {
  emits: ['sendData'],
  methods: {
    sendData() {
      this.$emit('sendData', 'Hello, родитель!');
    }
  }
}
</script>

// Версия Vue.js 2
<template>
  <button @click="sendData">Отправить данные</button>
</template>

<script>
export default {
  methods: {
    sendData() {
      this.$emit('sendData', 'Hello, родитель!');
    }
  }
}
</script>

В этом примере мы создаем пользовательское событие sendData и вызываем его с передачей значения Hello, родитель!.

Затем в родительском компоненте, где содержится дочерний компонент, мы можем прослушивать это событие и выполнить необходимые действия при его возникновении. Для этого используется глобальный компонент v-on или сокращенный синтаксис @:

<template>
  <div>
    <child-component @sendData="receiveData"></child-component>
    <p>Полученные данные: {{ receivedData }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      receivedData: ''
    }
  },
  methods: {
    receiveData(data) {
      this.receivedData = data;
    }
  }
}
</script>

В этом примере мы прослушиваем событие sendData от дочернего компонента child-component и вызываем метод receiveData, который обновляет значение переменной receivedData в родительском компоненте.

Таким образом, данные из дочернего элемента успешно передаются в родительский элемент с использованием механизма "emit" событий в Vue.js.