Maison > interface Web > js tutoriel > Comment gérer efficacement la communication inter-composants dans React ?

Comment gérer efficacement la communication inter-composants dans React ?

Linda Hamilton
Libérer: 2024-11-27 01:48:11
original
207 Les gens l'ont consulté

How to Effectively Manage Inter-Component Communication in React?

Communication inter-composants dans React

Dans React, maintenir l'état de plusieurs composants peut être difficile. Voici comment faciliter la communication entre les composants associés :

Scénario n°1 : Filtres en tant qu'enfant de la liste

Passer un gestionnaire du parent (Liste) à l'enfant ( Filtres). Lorsque le filtre change, le gestionnaire dans Filters appelle la méthode du parent pour mettre à jour l'état et déclencher un nouveau rendu dans List.

Scénario n°2 : parent commun pour les filtres et la liste

Introduire un composant parent qui délègue la communication. Le parent transmet un gestionnaire aux filtres et met à jour l'état des filtres et de la liste lorsque le filtre change.

Scénario n°3 : système d'événements global

Pour les composants sans relation parent-enfant, envisagez d'utiliser un système d'événements global. Définissez un nom d'événement, tel que « filterUpdated », et abonnez-vous à celui-ci dans les composants Filtres et Liste. Lors des changements de filtre, déclenchez l'événement, qui informera tous les composants abonnés de mettre à jour leur état en conséquence.

Exemple :

// Global events file
export const myEmitter = new EventEmitter();

// Filters component
componentDidMount() {
  myEmitter.on('filterUpdated', this.handleFilterUpdate);
}

handleFilterChange() {
  // Emit event and pass new filter value
  myEmitter.emit('filterUpdated', newFilterValue);
}

// List component
componentDidMount() {
  myEmitter.on('filterUpdated', this.handleFilterUpdate);
}

handleFilterUpdate(newFilterValue) {
  // Update state
  this.setState({ filterValue: newFilterValue });
}
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal