Maison > interface Web > js tutoriel > Comment optimiser le hook useEffect pour déclencher une fonction uniquement lors du rendu initial ?

Comment optimiser le hook useEffect pour déclencher une fonction uniquement lors du rendu initial ?

Patricia Arquette
Libérer: 2024-10-17 22:02:02
original
963 Les gens l'ont consulté

How to Optimize useEffect Hook to Trigger a Function Only on Initial Render?

Hook useEffect optimisé : appeler la fonction d'initialisation une seule fois

Le hook useEffect de React permet d'exécuter des fonctions personnalisées en réponse aux changements dans les accessoires ou l'état du composant. Cependant, dans certains scénarios, il est souhaité d'appeler une fonction lors du rendu initial uniquement, simulant le comportement de la méthode de cycle de vie du composant existant DidMount.

Considérez le composant basé sur la classe suivant :

<code class="javascript">class MyComponent extends React.PureComponent {
    componentDidMount() {
        loadDataOnlyOnce();
    }
    render() { ... }
}</code>
Copier après la connexion

Dans un composant basé sur une fonction utilisant des hooks, cela peut être traduit comme suit :

<code class="javascript">function MyComponent() {
    useEffect(() => {
        loadDataOnlyOnce(); // This will fire on every change
    }, [...???]);
    return (...);
}</code>
Copier après la connexion

Pour garantir que la fonction n'est appelée qu'une seule fois, un tableau vide doit être fourni comme deuxième argument de useEffect :

<code class="javascript">function MyComponent() {
  useEffect(() => {
    loadDataOnlyOnce();
  }, []);

  return <div> {/* ... */} </div>;
}</code>
Copier après la connexion

En fournissant un tableau vide, useEffect ne se déclenchera qu'après la phase de rendu initiale, permettant une initialisation efficace des composants sans rendus inutiles.

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:php
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