useMemo fournit Redux
P粉845862826
P粉845862826 2023-08-25 21:04:43
0
2
639
<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粉845862826
P粉845862826

répondre à tous(2)
P粉146080556

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

P粉726133917

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal