Middle
Jak předat data nebo metody z dětského komponentu na rodičovský v Vue?
sobes.tech AI
Odpověď od AI
V Vue.js se obvykle používá mechanismus událostí k přenosu dat nebo volání metod z dětského komponentu na rodičovský.
Dětský komponent může pomocí $emit odeslat událost s potřebnými daty a rodičovský komponent ji poslouchá a na ni reaguje.
Příklad:
<!-- Rodičovský komponent -->
<template>
<ChildComponent @custom-event="handleCustomEvent" />
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: { ChildComponent },
methods: {
handleCustomEvent(payload) {
console.log('Data od dítěte:', payload);
}
}
}
</script>
<!-- Dětský komponent -->
<template>
<button @click="sendData">Odeslat data rodiči</button>
</template>
<script>
export default {
methods: {
sendData() {
this.$emit('custom-event', { message: 'Ahoj, rodiči!' });
}
}
}
</script>
Tímto způsobem dětský komponent nevolá přímo metody rodiče, ale oznamuje událost, a rodič rozhodne, co s tím udělat. To podporuje princip jednosměrného toku dat a zjednodušuje správu stavu.