Dans les projets, nous rencontrons souvent des situations où des composants frères et sœurs communiquent. Dans les grands projets, nous pouvons facilement gérer les problèmes de communication entre les composants en introduisant vuex, mais dans certains petits projets, nous n'avons pas besoin d'introduire vuex. Ce qui suit est une brève introduction à la méthode d'utilisation des méthodes traditionnelles pour réaliser la communication entre les composants parent et enfant. Cet article présente principalement la méthode de communication des composants Vue Brother (sans utiliser Vuex). L'éditeur pense que c'est plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un œil. J'espère que cela pourra aider tout le monde.
Exemple simple : nous cliquons sur le bouton dans le composant a et transmettons les informations au composant b, afin que le composant b apparaisse.
L'idée principale est : Passer d'abord de fils à père, puis de père en fils
Tout d'abord, dans le a.vue, nous lions un événement handleClick au bouton du bouton. Dans l'événement, nous utilisons la méthode this.$emit() pour déclencher un événement personnalisé et transmettre nos paramètres.
Dans l'exemple, nous utilisons this.$emit() pour déclencher l'événement personnalisé de la méthode isLogFn et transmettre le paramètre de journal
a.vue
<template> <p class="ap"> <p>a组件</p> <button type="button" v-on:click="handleClick">点击打开组件b弹窗</button> </p> </template> <script> export default { methods: { handleClick () { this.$emit('isLogFn','log') } } } </script> <style> .ap{ width: 400px; height: 200px; border: 1px solid #000; margin: 0 auto; } </style>
La deuxième étape consiste à écouter cet événement personnalisé dans le composant parent, à déclencher la méthode correspondante et à accepter les paramètres passés par le composant a. À ce stade, nous avons terminé le processus de transmission des valeurs du composant enfant au composant parent.
Dans l'exemple,
À ce stade, tout le processus n’est pas encore terminé, il n’est qu’à moitié terminé. Ensuite, nous devons terminer le transfert de valeur entre les composants parent et enfant et transmettre les informations du composant a au composant b.
Liez l'attribut islog dans la balise < bPage > et liez dynamiquement le champ de connexion dans data. Après avoir obtenu les « données » via la méthode lisLogFn, nous devons juger les données transmises par data. Déterminez le résultat pour modifier les données dans data(), transmettant ainsi les données au composant b
App.vue
<template> <p id="app"> <aPage @isLogFn = "lisLogFn"></aPage> <bPage :isLog = "login"></bPage> </p> </template> <script> import aPage from './components/a.vue' import bPage from './components/b.vue' export default { data () { return { login: 'false' } }, name: 'app', components: { aPage, bPage }, methods: { lisLogFn (data) { if (data == 'log') { this.login = 'true' } } } } </script> <style> </style>
Enfin, dans le composant b Vous devez créer des accessoires et définir un attribut isLog. Cet attribut est la valeur que nous avons transmise. Nous traitons ensuite ces données dans une propriété calculée, qui est finalement utilisée par le composant b. Dans l'exemple, nous utilisons v-show="isLogin" pour contrôler si la fenêtre contextuelle est ouverte.
N'oubliez pas ! Ces accessoires ne peuvent pas être utilisés directement, ils doivent être traités par traitement informatique. La raison en est que je cite la description officielle de la vue
Flux de données unidirectionnel
b.vue<🎜. >
<template> <p class="bp" v-show="isLogin">我是组件B弹窗</p> </template> <script> export default { props: ['isLog'], data () { return { } }, computed: { isLogin () { if(this.isLog == 'true'){ return true } else { return false } } } } </script> <style> .bp{ width: 200px; height: 200px; border: 1px #000 solid; margin: 0 auto; } </style>
Explication détaillée de la communication du composant non parent-enfant du bus d'événements dans vue
Communication des composants Vue.js Analyse détaillée de plusieurs postures
Discussion approfondie des composants Vue.js et de la communication des composants
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!