Sobes.tech
Middle

Kaip perduoti duomenis ar metodus iš vaiko komponento į tėvo komponentą Vue?

sobes.tech AI

Atsakymas iš AI

Vue.js dažniausiai įvykio mechanizmas naudojamas perduoti duomenis arba iškvieti metodus iš vaiko komponento į tėvo komponentą.

Vaiko komponentas gali naudoti $emit, kad išsiųstų įvykį su reikalingais duomenimis, o tėvo komponentas klausosi šio įvykio ir į jį reaguoja.

Pavyzdys:

<!-- Tėvo komponentas -->
<template>
  <ChildComponent @custom-event="handleCustomEvent" />
</template>

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

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

<!-- Vaiko komponentas -->
<template>
  <button @click="sendData">Siųsti duomenis tėvui</button>
</template>

<script>
export default {
  methods: {
    sendData() {
      this.$emit('custom-event', { message: 'Labas, tėti!' });
    }
  }
}
</script>

Šiuo būdu, vaiko komponentas tiesiogiai nekviečia tėvo metodų, o praneša apie įvykį, ir tėvas nusprendžia, ką su juo daryti. Tai palaiko vienpusio duomenų srauto principą ir supaprastina būsenos valdymą.