Vue.js Acessando o Estado de um Componente Filho
No Vue.js, a propriedade $refs
No exemplo abaixo, um componente pai altera uma propriedade do componente filho:
<!DOCTYPE html>
<html>
<head>
<title>Componentes Vue.js</title>
<meta charset="utf-8" />
<script src="https://unpkg.com/vue"></script>
</head>
<body>
<div id="app">
<user-details :user="user" ref="details"></user-details>
<button v-on:click="toggle()">Ocultar/Mostrar</button>
</div>
<script>
const app = Vue.createApp({
data() {
return {
user: { name: 'Tom', age: 18 }
};
},
methods: {
toggle() {
this.$refs.details.visible = !this.$refs.details.visible;
}
}
});
app.component('user-details', {
props: ["user"],
template: `<div>
<h2>Informações do Usuário</h2>
<div v-if="visible">
<p>Name: {{ user.name }}</p>
<p>Age: {{ user.age }}</p>
</div>
</div>`,
data() {
return {
visible: false
};
}
});
app.mount('#app');
</script>
</body>
</html>
O componente user-details
ref="details"
toggle()
visible
$refs
No componente user-details
visible
toggle()

É importante ressaltar que a propriedade $refs
computed