Sobes.tech
Middle

Jak przekazać dane lub metody z komponentu potomnego do rodzica w Vue?

sobes.tech AI

Odpowiedź od AI

W Vue.js mechanizm zdarzeń jest zwykle używany do przekazywania danych lub wywoływania metod z komponentu potomnego do rodzica.

Komponent potomny może wysłać zdarzenie z potrzebnymi danymi za pomocą $emit, a komponent rodzica nasłuchuje tego zdarzenia i na nie reaguje.

Przykład:

<!-- Komponent rodzica -->
<template>
  <ChildComponent @custom-event="handleCustomEvent" />
</template>

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

export default {
  components: { ChildComponent },
  methods: {
    handleCustomEvent(payload) {
      console.log('Dane od dziecka:', payload);
    }
  }
}
</script>

<!-- Komponent dziecka -->
<template>
  <button @click="sendData">Wyślij dane do rodzica</button>
</template>

<script>
export default {
  methods: {
    sendData() {
      this.$emit('custom-event', { message: 'Cześć, rodzicu!' });
    }
  }
}
</script>

W ten sposób, komponent dziecka nie wywołuje bezpośrednio metod rodzica, lecz zgłasza zdarzenie, a rodzic decyduje, co z tym zrobić. To wspiera zasadę jednokierunkowego przepływu danych i upraszcza zarządzanie stanem.