cari

Rumah  >  Soal Jawab  >  teks badan

useMemo menyediakan Redux

<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粉845862826P粉845862826445 hari yang lalu634

membalas semua(2)saya akan balas

  • P粉146080556

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

    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

    balas
    0
  • P粉726133917

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

    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.

    balas
    0
  • Batalbalas