


Comment faire fonctionner $emit et $on en vue pour communiquer avec les composants parent-enfant et frères et sœurs
Cette fois, je vais vous montrer comment faire fonctionner $emit et $on parent-enfant et frères et sœurs afin de communiquer. Quelles sont les précautions pour faire fonctionner $emit et $on parent-enfant et frère/sœur. composants en vue de communiquer, comme suit C'est un cas pratique, regardons-le.
Il existe trois méthodes de transmission principales :
1. Communication entre le composant parent et le composant enfant
2. Communication entre le composant enfant et le composant parent
3. entre les composants frères
1. Le composant parent transmet les valeurs aux composants enfants
Le composant parent transmet les valeurs aux composants enfants à l'aide d'accessoires
//父组件:parent.vue <template> <p> <child :vals = "msg"></child> </p> </template> <script> import child from "./child"; export default { data(){ return { msg:"我是父组件的数据,将传给子组件" } }, components:{ child } } </script> //子组件:child.vue <template> <p> {{vals}} </p> </template> <script> export default { props:{ //父组件传值 可以是一个数组,对象 vals:{ type:String,//类型为字符窜 default:"123" //可以设置默认值 } }, } </script>
2. Communication du composant enfant au composant parent
Utilisez $emit(eventname,option)
pour déclencher événement ,
Paramètre 1 : Nom de l'événement personnalisé, écrit en minuscules ou connecté avec -, comme event, le nom de l'événement ne peut pas être écrit en chameau (eventName)
Le sous-composant transmet la valeur au composant parent, et vous pouvez utiliser $emit pour Déclenchez la valeur de l'événement dans le sous-composant. , le composant parent obtient des données via la surveillance des événements
Cependant, il y a un problème ici,
1 C'est le composant enfant qui transmet activement les données. au composant parent, et le composant parent l'écoute et le reçoit (par le composant enfant L'opération dans le composant parent détermine quand transmettre la valeur)
2. Ou utilisez le composant parent pour déterminer quand le composant enfant transmettra la valeur au composant parent, puis surveillera et recevra (l'opération dans le composant parent détermine quand transmettre la valeur)
Les deux cas sont disponibles
2.1 : l'événement $meit est déclenché et l'événement personnalisé $emit
2.2 : l'événement $meit est déclenché. peut être déclenché en opérant l'événement du composant enfant (ref) via le composant parentLe premier cas :
//父组件:parent.vue <template> <p> <child v-on:childevent='wathChildEvent'></child> <p>子组件的数据为:{{msg}}</p> </p> </template> <script> import child from "./child"; export default { data(){ return{ msg:"" } }, components:{ child }, methods:{ wathChildEvent:function(vals){//直接监听 又子组件触发的事件,参数为子组件的传来的数据 console.log(vals);//结果:这是子组件的数据,将有子组件操作触发传给父组件 this.msg = vlas; } } } </script> //子组件:child.vue <template> <p> <input type="button" value="子组件触发" @click="target"> </p> </template> <script> export default { data(){ return { texts:'这是子组件的数据,将有子组件操作触发传给父组件' } }, methods:{ target:function(){ //有子组件的事件触发 自定义事件childevent this.$emit('childevent',this.texts);//触发一个在子组件中声明的事件 childEvnet } }, } </script>
Deuxième cas :
//父组件:parent.vue <template> <p> <child v-on:childevent='wathChildEvent' ref="childcomp"></child> <input type="button" @click="parentEnvet" value="父组件触发" /> <p>子组件的数据为:{{msg}}</p> </p> </template> <script> import child from "./child"; export default { data(){ return{ msg:"" } }, components:{ child }, methods:{ wathChildEvent:function(vals){//直接监听 又子组件触发的事件,参数为子组件的传来的数据 console.log(vals);//这是子组件的数据,将有子组件操作触发传给父组件 this.msg = vlas; }, parentEnvet:function(){ this.$refs['childcomp'].target(); //通过refs属性获取子组件实例,又父组件操作子组件的方法触发事件$meit } } } </script> //子组件:child.vue <template> <p> <!-- dothing..... --> </p> </template> <script> export default { data(){ return { texts:'这是子组件的数据,将有子组件操作触发传给父组件' } }, methods:{ target:function(){ //又子组件的事件触发 自定义事件childevent this.$emit('childevent',this.texts);//触发一个在子组件中声明的事件 childEvnet } }, } </script>
//建立一个空的Vue实例,将通信事件挂载在该实例上 //emptyVue.js import Vue from 'vue' export default new Vue() //兄弟组件a:childa.vue <template> <p> <span>A组件->{{msg}}</span> <input type="button" value="把a组件数据传给b" @click ="send"> </p> </template> <script> import vmson from "./emptyVue" export default { data(){ return { msg:"我是a组件的数据" } }, methods:{ send:function(){ vmson.$emit("aevent",this.msg) } } } </script> //兄弟组件b:childb.vue <template> <p> <span>b组件,a传的的数据为->{{msg}}</span> </p> </template> <script> import vmson from "./emptyVue" export default { data(){ return { msg:"" } }, mounted(){ vmson.$on("aevent",(val)=>{//监听事件aevent,回调函数要使用箭头函数; console.log(val);//打印结果:我是a组件的数据 this.msg = val; }) } } </script> //父组件:parent.vue <template> <p> <childa><childa> <childb></childb> </p> </template> <script> import childa from "./childa"; import childb from "./childb"; export default { data(){ return{ msg:"" } }, components:{ childa, childb }, } </script>
Comment optimiser la fonction asynchrone js
Comment utiliser moins dans angulaire6
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Des questions et des solutions fréquemment posées pour l'impression de billets thermiques frontaux pour le développement frontal, l'impression de billets est une exigence commune. Cependant, de nombreux développeurs mettent en œuvre ...

Il n'y a pas de salaire absolu pour les développeurs Python et JavaScript, selon les compétences et les besoins de l'industrie. 1. Python peut être davantage payé en science des données et en apprentissage automatique. 2. JavaScript a une grande demande dans le développement frontal et complet, et son salaire est également considérable. 3. Les facteurs d'influence comprennent l'expérience, la localisation géographique, la taille de l'entreprise et les compétences spécifiques.

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en JavaScript? Lors du traitement des données, nous rencontrons souvent la nécessité d'avoir le même ID ...

La discussion sur la réalisation des effets de défilement de parallaxe et d'animation des éléments dans cet article explorera comment réaliser le site officiel de Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ...

Apprendre JavaScript n'est pas difficile, mais c'est difficile. 1) Comprendre les concepts de base tels que les variables, les types de données, les fonctions, etc. 2) Master la programmation asynchrone et les implémenter via des boucles d'événements. 3) Utilisez les opérations DOM et promettez de gérer les demandes asynchrones. 4) Évitez les erreurs courantes et utilisez des techniques de débogage. 5) Optimiser les performances et suivre les meilleures pratiques.

Explorez la mise en œuvre de la fonction de glisser et de réglage du panneau de type VScode dans le frontal. Dans le développement frontal, comment implémenter un VScode comme ...

Discussion approfondie des causes profondes de la différence de sortie Console.log. Cet article analysera les différences dans les résultats de sortie de la fonction Console.log dans un morceau de code et expliquera les raisons derrière. � ...
