Ce namp;rsquoest pas une réaction secrète. JS est très populaire ces dernières années. Camp;rsquoest maintenant la Bibliothèque JavaScript préférée de nombreux joueurs les plus importants sur Internet, y compris Facebook et WhatsApp. Lamp;rsquoune des principales raisons de son essor est lamp;rsquointroduction de crochets dans la version 16.8. Le crochet React permet de profiter de la fonctionnalité React sans écrire de composants de classe. Aujourdamp;rsquohui, les composants fonctionnels avec crochets sont devenus une structure de référence pour les développeurs qui utilisent React. Dans ce billet de blog, nous allons approfondir un crochet spécifique usecallback parce quamp;rsquoil implique une partie fondamentale de la programmation fonctionnelle, à savoir la mémoire. Vous saurez exactement comment et quand utiliser le crochet usecallback et profiterez de ses améliorations de performance.
Bonjour Plongeons! Quamp;rsquoest ce que la mémoire? Le stockage est une fonction complexe qui stocke sa sortie afin quamp;rsquoelle puisse être appelée la prochaine fois avec la même entrée. Camp;rsquoest comme un cache, mais à un niveau plus local. Il peut sauter namp;rsquoimporte quel calcul complexe et retourner la sortie plus rapidement parce quamp;rsquoil a déjà été calculé. Cela a un impact significatif sur lamp;rsquoallocation de mémoire et les performances, et le crochet damp;rsquoappel damp;rsquoutilisation devrait atténuer cet impact. React usecallback et usememo À ce stade, il est important de se rappeler que usecallback est bien apparié avec un autre crochet appelé usememo. Nous en discuterons tous, mais dans nous utiliserons le Callback comme sujet principal.
La différence fondamentale est que usememo renvoie une valeur stockée et usecallback renvoie une fonction stockée. Cela signifie que usememo est utilisé pour stocker les valeurs calculées, et usecallback renvoie une fonction que pouvez appeler plus tard. Ces crochets renvoient une version mise en cache à moins quamp;rsquoils namp;rsquoaient une dépendance (par exemple, état ou prop)
Vous ne changerez pas. Regardons deux fonctions en cours damp;rsquoexécution: Import {usememo, usecallback} from amp;lsquoReactamp;rsquo Const values = [3, 9, 6, 4, 2, 1] Ceci renvoie toujours la même valeur, un tableau trié. Une fois que le tableau de valeurs change, il est recalculé. Constante memoizedvalue = utiliser la valeur Memo (() = amp;gt. Sort () [valeur] Ceci renvoie une fonction qui peut être appelée plus tard. Le tableau des valeurs renvoie toujours le même résultat à moins quamp;rsquoil ne soit modifié. Const memoizedfunction = usecallback (() = amp;gt value. Le fragment de code ci dessus est un exemple manuel, mais montre la différence entre les deux callbacks:
Memoizedvalue devient un tableau [1, 2, 3, 4, 6, 9]. Tant que la variable valeurs reste inchangée, elle sera mémorisée et ne sera jamais recalculée. La fonction memoizedfunction sera une fonction qui renvoie un tableau [1, 2, 3, 4, 6, 9]. Lamp;rsquoavantage de ces deux rappels est quamp;rsquoils sont mis en cache et restent en attente jusquamp;rsquoà ce que le tableau des dépendances change. Cela signifie quamp;rsquoaucun déchet namp;rsquoest collecté dans le rendu. Réaction JS est maintenant la Bibliothèque JavaScript préférée de nombreux géants Internet, y compris Facebook et WhatsApp. En savoir plus dans ce guide ️ Cliquez pour tweeter et la réaction Pourquoi est il important de stocker pendant la réaction?
Cela concerne la façon dont React fait les composants. React utilise le Dom virtuel stocké en mémoire pour comparer les données et décider quoi mettre à jour. Le Dom virtuel aide à réagir aux performances et à garder vos applications rapides. Par défaut, si lamp;rsquoune des valeurs du composant change, lamp;rsquoensemble du composant joue à nouveau. Cela permet à React de « répondre » à lamp;rsquoentrée de lamp;rsquoutilisateur et de rafraîchir lamp;rsquoécran sans recharger la page. Vous ne voulez pas rendre le composant parce que les changements namp;rsquoaffectent pas le composant. Camp;rsquoest là quamp;rsquoil est stocké via usecallback et usememo
Construit avec le composant React. Supposons que le composant principal damp;rsquoun composant de vue de données joue, mais que lamp;rsquoobjet de scène ou le changement damp;rsquoétat namp;rsquoaffecte pas ce composant. Dans ce cas, ne voudrez peut être pas ou namp;rsquoaurez pas besoin de rendre et de restaurer toutes les données à nouveau. Évitez ce re rendu et re etch pour économiser la bande passante de lamp;rsquoutilisateur et offrir une expérience utilisateur plus lisse.
Lutter contre les temps d’arrêt et les problèmes de WordPress? Kinsta est une solution damp;rsquohébergement conçue pour gagner du temps! Inconvénients de React usecallback bien que ce crochet puisse aider à améliorer vos performances, il a aussi ses inconvénients. Certaines choses à considérer avant damp;rsquoutiliser usecallback (et usememo) sont: Waste Collection: la libération de mémoire par React supprimera damp;rsquoautres fonctions qui namp;rsquoont pas été stockées. Allocation de mémoire: Comme pour la collecte des ordures, plus de fonctions sont stockées, plus de mémoire est nécessaire. De plus, chaque fois que utilisez ces callbacks, React a un ensemble de code qui nécessite plus de mémoire pour fournir la sortie mise en cache. Complexité du Code: lorsque commencez à encapsuler des fonctions dans ces crochets, augmentez immédiatement la complexité du Code. Il est maintenant nécessaire de mieux comprendre pourquoi ces crochets sont utilisés et de confirmer quamp;rsquoils sont utilisés correctement. La prise de conscience des pièges ci dessus permettra damp;rsquoéviter les maux de tête qui font trébucher sur eux. Lorsque envisagez damp;rsquoutiliser usecallback, assurez que les avantages de performance lamp;emportent sur les inconvénients.
Lamp;rsquoexemple de réponse usecallback suivant est un réglage simple avec des composants de bouton et de compteur. Le compteur a deux sections damp;rsquoétat et affiche deux composants de bouton, chacun
Une partie distincte de lamp;rsquoétat de lamp;rsquoensemble damp;rsquoinstruments. Le composant bouton contient deux éléments: handleclick et name. Chaque fois quamp;rsquoun bouton est rendu, il est enregistré sur la console. Importer {usecallback, usestate} = ({handleclick, name}) = amp;gt {console.log (` ${name} render `) à partir du bouton
nous appliquons usecallback à la fonction handleclick et enveloppons le bouton dans React, Counter render button 1 render button 2 render maintenant. Remarque, nous pouvons voir ce que lamp;rsquoappel damp;rsquoutilisation fournit. Réaction Memo est similaire à usememo et nous permet de stocker des composants. Importer {usecallback, usestate} à partir du bouton Const = React. Memo ({handleclick, name}) = amp;gt {console.log (` ${name} rendered `) returned {nom} }) Const Const Const Counter = () = = amp;gt {console.log (amp;lsquoCounter renderedamp;rsquo amp;lsquo) Const [countone, setcountone] = = usestate (0) Const [counttwo, setcounttwo] = usestate (0) Const [counttwo, setcounttwo] =usestate (0) Const memoizedsetcountone = usecallbccountone = usecallback (() = = amp;gt = = = = amp;gt setcountone (countone + 1), [countone) Const mememoimoizedsetcounttwo = usecallback () = = = amp;gt {console.log (amp;lsquo Counter rendered amp;lsquo) = = amp;gt {console.log (amp;lsquo Counter rendered amp;lsquo) Const [countone, setcountone, setcountone 1), [counttwo]) renvoie {countone} {counttwo} ) } Maintenant, lorsque nous cliquons sur lamp;rsquoun de ces boutons, nous ne verrons que les boutons que nous cliquons pour accéder à la console: counter render button 1 render counter render button 2 render nous stockons les valeurs damp;rsquoattribut que nous appliquons au composant button et qui lui sont transmises sont traitées comme égales. Mettre en cache les deux fonctions handleclick et les traiter comme la même fonction par React jusquamp;rsquoà la valeur de lamp;rsquoélément n
Le tableau des dépendances ne change pas (par exemple, countone, counttwo). Êtes prêt à apprendre comment et quand utiliser le crochet usecallback et comment tirer le meilleur parti de ses améliorations de performance? À partir de là! Bien que usecallback et usememo soient intéressants, rappelez quamp;rsquoils ont des cas damp;rsquoutilisation spécifiques: ne devriez pas envelopper toutes les fonctions avec ces crochets. la fonction est complexe sur le plan informatique, la dépendance damp;rsquoun autre crochet ou attribut passé au composant de stockage est un bon indicateur que voudrez peut être implémenter pour usecallback. Nous espérons que cet article aidera à comprendre cette fonctionnalité React avancée et aidera à acquérir plus de confiance dans la programmation fonctionnelle!
Apprendre à apprivoiser 39 Utilisation du crochet de rappel React