recherche

Maison  >  Questions et réponses  >  le corps du texte

useMemo fournit Redux

<p>Je suis nouveau sur Redux et j'aimerais maximiser les performances de mon application Web. </p> <p>J'ai un état en redux que je stocke dans une variable pour l'afficher plus tard. </p> <p>Voici le code : </p> <pre class="brush:php;toolbar:false;">constmetricsState = useSelector((state: MetricsStateObject) => state.MetricsState); const mesMetrics =metricState.myMetrics;</pre> <p>J'ai constaté que useMemo améliore les performances en ne restituant pas si les données n'ont pas changé. </p> <p>Je me demande donc si <code>const myMetrics = useMemo(() =>metricsState.myMetrics, [metricsState.myMetrics]);</code> ? </p> <p>Merci pour votre temps. </p>
P粉845862826P粉845862826526 Il y a quelques jours660

répondre à tous(2)je répondrai

  • P粉146080556

    P粉1460805562023-08-26 16:13:29

    Laissez-moi d'abord vous dire la conclusion, c'est complètement inutile.

    Pourquoi? Parce que le processus metricsState.myMetrics只是一个取值 n’implique pas de calculs coûteux.

    Mais useMemo lui-même consomme une certaine quantité de calcul.

    Je pense donc que c'est une optimisation prématurée

    répondre
    0
  • P粉726133917

    P粉7261339172023-08-26 09:26:32

    useMemo Pour les calculs coûteux où vous ne souhaitez pas exécuter chaque rendu. J'aime

    const some = useMemo(()=> megaBigArray.reduce((acc,i)=>acc*i,0), [megaBigArray])

    ou quelque chose comme ça. Vous n'évaluez cette variable que lorsque megaBigArray change.

    Dans votre cas, le code s'exécutera de toute façon à chaque rendu, mais useSelector le rendu ne devrait être déclenché que lorsque la section du magasin que vous avez sélectionnée change. Vous devriez donc pouvoir vous en passer très bien.

    répondre
    0
  • Annulerrépondre