useMemo bietet Redux
P粉845862826
P粉845862826 2023-08-25 21:04:43
0
2
630
<p>Ich bin neu bei Redux und möchte die Leistung meiner Webanwendung maximieren. </p> <p>Ich habe einen Status in Redux, den ich in einer Variablen speichere, um ihn später anzuzeigen. </p> <p>Das ist der Code: </p> <pre class="brush:php;toolbar:false;">constmetricsState = useSelector((state: MetricsStateObject) => state.MetricsState); const myMetrics =metricState.myMetrics;</pre> <p>Ich habe festgestellt, dass useMemo die Leistung verbessert, indem es nicht erneut rendert, wenn sich die Daten nicht geändert haben. </p> <p>Ich frage mich also, ob <code>const myMetrics = useMemo(() =>metricsState.myMetrics, [metricsState.myMetrics]);</code> eine gute Vorgehensweise ist oder völlig nutzlos ist ? </p> <p>Vielen Dank für Ihre Zeit. </p>
P粉845862826
P粉845862826

Antworte allen(2)
P粉146080556

先说结论吧,完全没用。

为什么? 因为metricsState.myMetrics只是一个取值过程,并不涉及昂贵的计算。

但是useMemo本身就消耗了一定的计算量。

所以我认为这属于过早优化

P粉726133917

useMemo 用于高成本计算,您不想运行每个渲染。喜欢

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

或者类似的东西。您仅在 megaBigArray 发生变化时计算该变量。

在您的情况下,无论如何,该代码都会在每次渲染时运行,但是 useSelector 应该仅在您选择的商店部分发生更改时触发渲染。所以没有它你应该也能过得很好。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!