useMemo menyediakan Redux
P粉845862826
P粉845862826 2023-08-25 21:04:43
0
2
641
<p>Saya baru menggunakan Redux dan saya ingin memaksimumkan prestasi aplikasi web saya. </p> <p>Saya mempunyai keadaan dalam redux yang saya simpan dalam pembolehubah untuk dipaparkan kemudian. </p> <p>Ini ialah kod: </p> <pre class="brush:php;toolbar:false;">constmetricsState = useSelector((state: MetricsStateObject) => state.MetricsState); const myMetrics =metricState.myMetrics;</pre> <p>Saya mendapati useMemo meningkatkan prestasi dengan tidak memaparkan semula jika data tidak berubah. </p> <p>Jadi saya tertanya-tanya jika <code>const myMetrics = useMemo(() =>metricsState.myMetrics, [metricsState.myMetrics]);</code> ? </p> <p>Terima kasih atas masa anda. </p>
P粉845862826
P粉845862826

membalas semua(2)
P粉146080556

Biar saya beritahu anda kesimpulannya dahulu, ia langsung tidak berguna.

kenapa? Kerana proses metricsState.myMetrics只是一个取值 tidak melibatkan pengiraan yang mahal.

Tetapi useMemo sendiri menggunakan jumlah pengiraan tertentu.

Jadi saya rasa ini pengoptimuman pramatang

P粉726133917

useMemo Untuk pengiraan mahal di mana anda tidak mahu menjalankan setiap render. Suka

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

atau sesuatu seperti itu. Anda hanya menilai pembolehubah ini apabila megaBigArray berubah.

Dalam kes anda, kod akan dijalankan pada setiap pemaparan, tetapi useSelector pemaparan hanya boleh dicetuskan apabila bahagian kedai yang anda pilih berubah. Jadi anda sepatutnya boleh bertahan dengan baik tanpanya.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan