Saya baru menggunakan Redux dan saya ingin memaksimumkan prestasi aplikasi web saya.
Saya mempunyai keadaan dalam redux yang saya simpan dalam pembolehubah untuk dipaparkan kemudian.
Ini ialah kod:
constmetricsState = useSelector((state: MetricsStateObject) => state.MetricsState); const myMetrics =metricState.myMetrics;
Saya mendapati useMemo meningkatkan prestasi dengan tidak memaparkan semula jika data tidak berubah.
Jadi saya tertanya-tanya jika const myMetrics = useMemo(() =>metricsState.myMetrics, [metricsState.myMetrics]); ?
Terima kasih atas masa anda.
Biar saya beritahu anda kesimpulannya dahulu, ia langsung tidak berguna.
kenapa? Kerana prosesmetricsState.myMetrics只是一个取值tidak melibatkan pengiraan yang mahal.Tetapi
useMemosendiri menggunakan jumlah pengiraan tertentu.Jadi saya rasa ini pengoptimuman pramatang
useMemoUntuk pengiraan mahal di mana anda tidak mahu menjalankan setiap render. Sukaatau sesuatu seperti itu. Anda hanya menilai pembolehubah ini apabila
megaBigArrayberubah.Dalam kes anda, kod akan dijalankan pada setiap pemaparan, tetapi
useSelectorpemaparan hanya boleh dicetuskan apabila bahagian kedai yang anda pilih berubah. Jadi anda sepatutnya boleh bertahan dengan baik tanpanya.