Maison > interface Web > js tutoriel > le corps du texte

Méthodes et hooks du cycle de vie des pièces React Js dans React

Barbara Streisand
Libérer: 2024-11-02 14:29:02
original
697 Les gens l'ont consulté

React Js Part  Lifecycle Methods and Hooks in React

React est une bibliothèque JavaScript qui nous permet de créer des interfaces utilisateur de manière déclarative. L'un des concepts clés de React est la manière dont nous gérons le cycle de vie des composants. Dans cet article, nous aborderons deux aspects principaux : les méthodes de cycle de vie dans les composants de classe et les Hooks.

1. Méthodes de cycle de vie dans les composants de classe

Les méthodes de cycle de vie sont des méthodes spéciales appelées à différentes étapes du cycle de vie d'un composant. Voici quelques-unes des méthodes de cycle de vie les plus courantes et leurs objectifs :

un. Montage

  • constructor(props) : La première méthode appelée. Généralement utilisé pour initialiser l’état et les méthodes de liaison.
constructor(props) {
  super(props);
  this.state = { count: 0 };
}
Copier après la connexion
Copier après la connexion
  • composantDidMount() : appelé après le premier montage du composant sur le DOM. Idéal pour récupérer des données ou initialiser des abonnements.
componentDidMount() {
  this.fetchData();
}
Copier après la connexion
Copier après la connexion

b. Mise à jour

componentDidUpdate(prevProps, prevState) : appelé après les mises à jour du composant. Utile pour répondre aux changements d’accessoires ou d’état. Assurez-vous de vérifier les modifications pour éviter les boucles infinies.

componentDidUpdate(prevProps) {
  if (this.props.id !== prevProps.id) {
    this.fetchData();
  }
}
Copier après la connexion
Copier après la connexion

c. Démontage

componentWillUnmount() : appelé juste avant que le composant ne soit supprimé du DOM. Utile pour nettoyer les abonnements, les minuteries ou d'autres opérations nécessitant un nettoyage.

componentWillUnmount() {
  this.cleanup();
}
Copier après la connexion
Copier après la connexion

d. Gestion des erreurs

componentDidCatch(error, info) : utilisé pour détecter les erreurs dans les composants enfants. Utile pour la gestion centralisée des erreurs.

componentDidCatch(error, info) {
  logErrorToMyService(error, info);
}
Copier après la connexion
Copier après la connexion

2. Introduction aux crochets React

React Hooks est une fonctionnalité qui nous permet d'utiliser des méthodes d'état et de cycle de vie sans écrire de composants de classe. Voici quelques-uns des crochets les plus couramment utilisés :

un. utiliserState()

Utilisé pour ajouter un état aux composants fonctionnels. Cette fonction renvoie une paire : l'état actuel et une fonction pour le mettre à jour.

import React, { useState } from 'react';

const Counter = () => {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
};
Copier après la connexion
Copier après la connexion

b. utiliserEffet()

useEffect nous permet d'exécuter des effets secondaires dans des composants fonctionnels. Il combine les fonctionnalités de composantDidMount, composantDidUpdate et composantWillUnmount.

  • Exemple 1 : useEffect avec un tableau vide ([]) Lorsque useEffect est utilisé avec un tableau vide en tant que dépendance, l'effet ne s'exécute qu'une seule fois après le montage du composant.
constructor(props) {
  super(props);
  this.state = { count: 0 };
}
Copier après la connexion
Copier après la connexion
  • Exemple 2 : useEffect sans tableau de dépendances Lorsque useEffect est fourni sans tableau de dépendances, l'effet s'exécute à chaque nouveau rendu du composant.
componentDidMount() {
  this.fetchData();
}
Copier après la connexion
Copier après la connexion
  • Exemple 3 : useEffect avec un tableau de dépendances Lorsque vous fournissez un tableau de dépendances, l'effet s'exécute chaque fois qu'une des valeurs du tableau change.
componentDidUpdate(prevProps) {
  if (this.props.id !== prevProps.id) {
    this.fetchData();
  }
}
Copier après la connexion
Copier après la connexion

c. utiliserContext()

Le hook useContext est utilisé pour accéder au contexte dans les composants fonctionnels. Ceci est particulièrement utile pour partager des données globales, telles que des thèmes ou le statut d'authentification des utilisateurs, sans perçage d'accessoires.

Exemple : Thématisation avec useContext
Dans cet exemple, nous allons créer un contexte de thème simple qui nous permet de basculer entre les thèmes clairs et sombres.

1. Créer le contexte du thème
Tout d'abord, nous créons un contexte pour le thème.

componentWillUnmount() {
  this.cleanup();
}
Copier après la connexion
Copier après la connexion

2. Consommer le contexte du thème
Ensuite, nous pouvons créer un composant qui consomme le contexte du thème pour appliquer des styles et fournir un bouton pour basculer le thème.

componentDidCatch(error, info) {
  logErrorToMyService(error, info);
}
Copier après la connexion
Copier après la connexion

3. Enveloppez l'application avec le fournisseur de thème
Enfin, nous enveloppons notre application (ou une partie de celle-ci) avec le ThemeProvider pour fournir le contexte du thème à ses enfants.

import React, { useState } from 'react';

const Counter = () => {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
};
Copier après la connexion
Copier après la connexion

Explication

  • Création de contexte de thème : nous créons un ThemeContext à l'aide de createContext et d'un composant ThemeProvider qui gère l'état actuel du thème et fournit une fonction pour le basculer.

  • Consommation de contexte : dans le ThemedComponent, nous utilisons useContext(ThemeContext) pour accéder au thème actuel et à la fonction bascule. Ce composant affiche un contenu différent en fonction du thème actuel et comprend un bouton pour l'activer.

  • Structure de l'application : l'intégralité de l'application (ou une partie de celle-ci) est enveloppée dans le ThemeProvider, permettant à tout composant enfant d'accéder au contexte du thème.

d. useMemo() et useCallback()

  • useMemo() : met en cache le résultat de calculs coûteux pour éviter de recalculer à chaque rendu.
import React, { useState, useEffect } from 'react';

const FetchDataOnce = () => {
  const [data, setData] = useState([]);

  useEffect(() => {
    const fetchData = async () => {
      const response = await fetch('https://api.example.com/data');
      const result = await response.json();
      setData(result);
    };

    fetchData();
  }, []); // Effect runs only once when the component mounts

  return (
    <ul>
      {data.map(item => (
        <li key={item.id}>{item.name}</li>
      ))}
    </ul>
  );
};
Copier après la connexion
  • useCallback() : met en cache les fonctions pour éviter de les recréer à chaque rendu.
import React, { useState, useEffect } from 'react';

const CountComponent = () => {
  const [count, setCount] = useState(0);

  useEffect(() => {
    console.log(`Count updated: ${count}`);

    const fetchData = async () => {
      const response = await fetch(`https://api.example.com/data/${count}`);
      const result = await response.json();
      console.log(result);
    };

    fetchData();
  }); // Effect runs every time the component renders

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
};
Copier après la connexion

3. Avantages de l'utilisation des crochets

Les hooks offrent de la flexibilité et la possibilité de partager une logique entre des composants sans avoir à utiliser des composants d'ordre supérieur (HOC) ou des accessoires de rendu. Certains avantages de l’utilisation des Hooks incluent :

  • Simplicité et clarté : Le code devient plus propre et plus facile à lire.
  • Flexibilité : La logique peut être divisée en fonctions plus petites qui peuvent être réutilisées n'importe où.
  • Complexité réduite : évite l'utilisation de classes et de méthodes de cycle de vie compliquées.

Les méthodes de cycle de vie et les Hooks sont deux aspects importants du développement de React. Comprendre le fonctionnement des deux concepts nous permet de créer des composants plus efficaces et plus maintenables. Les hooks, en particulier, ouvrent de nouvelles possibilités pour développer des composants fonctionnels, modifiant ainsi la façon dont nous interagissons avec l'état et les effets secondaires.

En maîtrisant les méthodes de cycle de vie et les Hooks, vous serez en mesure de créer des applications React plus robustes et réactives. Bon codage !

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!

source:dev.to
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!