Sobes.tech
Middle
17

Как передать данные или методы от дочернего компонента к родительскому во Vue?

Companies where asked
Marfatech

Answer from AI

sobes.tech AI

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

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

Пример:

<!-- Родительский компонент -->
<template>
  <ChildComponent @custom-event="handleCustomEvent" />
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: { ChildComponent },
  methods: {
    handleCustomEvent(payload) {
      console.log('Данные от дочернего:', payload);
    }
  }
}
</script>

<!-- Дочерний компонент -->
<template>
  <button @click="sendData">Отправить данные родителю</button>
</template>

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

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