Sobes.tech
Middle

Como passar dados ou métodos de um componente filho para um componente pai no Vue?

sobes.tech IA

Resposta da IA

No Vue.js, o mecanismo de eventos é geralmente utilizado para transmitir dados ou chamar métodos do componente filho para o componente pai.

O componente filho pode enviar um evento com os dados necessários usando $emit, e o componente pai escuta esse evento e reage a ele.

Exemplo:

<!-- Componente pai -->
<template>
  <ChildComponent @custom-event="handleCustomEvent" />
</template>

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

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

<!-- Componente filho -->
<template>
  <button @click="sendData">Enviar dados ao pai</button>
</template>

<script>
export default {
  methods: {
    sendData() {
      this.$emit('custom-event', { message: 'Olá, pai!' });
    }
  }
}
</script>

Dessa forma, o componente filho não chama diretamente os métodos do pai, mas informa sobre um evento, e o pai decide o que fazer com ele. Isso mantém o princípio de fluxo de dados unidirecional e simplifica a gestão do estado.