Kapan menggunakan useMemo dan useCallback: panduan singkat untuk penggemar React

Diterbitkan: 2022-07-30

Jika Anda seorang pengembang React, Anda mungkin telah mengalami diskusi online React useMemo vs useCallback dan akhirnya menjadi lebih bingung daripada sebelumnya. Mungkin sangat sulit untuk mengetahui perbedaan antara useMemo dan useCallback. Tidak apa-apa! Mungkin sulit untuk memahami React-Hooks di awal, tetapi mereka bisa sangat berguna nantinya.




Pada artikel ini, kami akan menunjukkan kepada Anda perbedaan antara useCallback dan useMemo dan kapan harus menggunakan useCallback dan useMemo.

Daftar isi

Perbedaan Antara useMemo dan useCallback

Dua kait bawaan diperkenalkan dengan React 16.8. Fitur-fitur ini diperkenalkan untuk mengoptimalkan kinerja. Perbedaan antara useMemo vs useCallback tampaknya dapat diabaikan, jadi kami akan mencoba untuk menghilangkan kebingungan tersebut.

Apa itu React-Hook?

Kait Bereaksi

Hooks adalah fitur baru yang diperkenalkan di React yang memungkinkan useState dan fitur React lainnya tanpa menulis kelas. Hooks adalah metode dan fungsi yang "menghubungkan" ke status dan fitur siklus hidup React.

useCallback vs useMemo

Kait useCallback digunakan setiap kali komponen anak dirender ulang berulang kali tanpa benar-benar perlu. Saat Anda menggunakan useCallback, Anda dapat mencegah rendering ulang yang tidak perlu ini dengan mengembalikan instance yang sama dari fungsi yang sedang diteruskan alih-alih membuat instance baru setiap saat. Ini dapat menghemat banyak waktu (dan uang yang dihabiskan untuk jam pengembang). Melewati larik dependensi dengan panggilan balik memo akan menghasilkan versi memo yang hanya akan diubah ketika ketergantungan berubah.




useMemo digunakan dalam komponen fungsional React. Ini digunakan untuk mengembalikan nilai memoized. Memoisasi mengacu pada proses menghemat waktu kompilasi ulang dengan mengembalikan hasil yang di-cache alih-alih mengkompilasi ulang fungsi dengan argumen yang sama lagi untuk proses berikutnya. Hasil cache dikembalikan saat berikutnya dipanggil. kait useMemo memberikan nilai yang dipetakan memori.

Jelas, ada beberapa kesamaan. Baik di useMemo dan useCallback, hook menerima fungsi serta larik dependensi. Namun, useCallback akan mengingat nilai yang dikembalikan, dan useMemo akan mengingat fungsinya. Dengan kata lain, yang satu menyimpan tipe nilai, dan yang lain menyimpan fungsi.

  • BACA LEBIH LANJUT – Bagaimana dan Mengapa Anda Harus Mengatur File Anda
  • 9 Cara Terbaik Menggunakan Gadget Elektronik Di Kelas

Kapan menggunakan useCallback vs useMemo

Jadi kapan Anda harus menggunakan useCallback, dan kapan useMemo merupakan opsi terbaik? Mari kita lihat sebuah contoh. Jika kode yang secara komputasi berat dan mahal menerima argumen dan mengembalikan nilai, useMemo adalah opsi terbaik. Dengan begitu, Anda dapat terus mereferensikan nilai di antara render tanpa menjalankan ulang kode dan membuang waktu serta daya komputasi Anda.

Jika Anda perlu mempertahankan instance fungsi di beberapa render, Anda harus menggunakan useCallback sebagai gantinya karena pada dasarnya menempatkan fungsi di luar cakupan komponen React Anda agar tetap utuh.




Apa itu useEffect?

Kami telah menyebutkan larik dependensi, yang mungkin Anda temui saat menggunakan useEffect. useEffect adalah kait React lainnya. Ini digunakan untuk menangani efek samping dalam komponen fungsional menggunakan logika argumen panggilan balik. Dependensi adalah daftar dependensi dari efek samping, misalnya, props atau nilai status.

Hook ini menunjukkan React bahwa komponen perlu melakukan tindakan setelah rendering. Ketika DOM diperbarui, efek yang Anda lewati akan disimpan. Anda juga dapat melakukan pengambilan data untuk mencapai hasil ini.

Singkatnya, useCallback, useMemo, dan useEffect semuanya berkaitan dengan peningkatan kinerja antara rendering ulang komponen dalam aplikasi React.

Namun, penting untuk tidak menggunakan kait secara berlebihan. Kait memperkenalkan logika baru dan kompleks, dan itu berpotensi memiliki efek sebaliknya dari yang Anda inginkan, menciptakan masalah kinerja alih-alih menyelesaikannya. useMemo hanya boleh digunakan untuk perhitungan yang sangat mahal.

Jangan gunakan useMemo atau useCallback untuk memperbaiki masalah mendasar dengan aplikasi Anda. Akhirnya, masalah ini akan muncul kembali dan menghantui Anda, jadi sebaiknya perhatikan kesalahan yang diketahui terlebih dahulu.




  • BACA LEBIH LANJUT – Cara Memilih CMS Terbaik
  • Apa Kelebihan dan Kekurangan Metode Kriptografi?

Kesimpulan

Semoga artikel ini menambah wawasan, dan Anda lebih memahami kedua kait tersebut. Kesimpulan:

  • Keduanya menerima fungsi dan larik dependensi
  • useMemo mengingat nilai yang dikembalikan, useCallback mengingat fungsi.

Perbedaan antara useMemo dan useCallback cukup jelas! Alat-alat ini berpotensi menghemat waktu dan uang, tetapi hanya jika digunakan dalam konteks dan lingkungan yang tepat.

Saya harap tutorial ini membantu Anda mengetahui tentang Kapan Menggunakan useMemo dan useCallback: Panduan Singkat Untuk Penggemar React . Jika Anda ingin mengatakan sesuatu, beri tahu kami melalui bagian komentar. Jika Anda menyukai artikel ini, silakan bagikan dan ikuti WhatVwant di Facebook, Twitter, dan YouTube untuk kiat teknis lainnya.

Kapan Menggunakan useMemo dan useCallback – FAQ

Apa perbedaan antara useCallback dan useMemo?

UseCallsback digunakan untuk mengoptimalkan perilaku rendering komponen fungsi React Anda, sementara useMemo digunakan untuk mengingat fungsi-fungsi mahal agar tidak perlu memanggilnya di setiap render.




Kapan useCallback harus digunakan?

Kait useCallback digunakan saat Anda memiliki komponen yang dirender oleh turunan berulang kali tanpa perlu.

Mengapa kami menggunakan useMemo?

useMemo adalah salah satu kait yang ditawarkan oleh React. Kait ini memungkinkan pengembang untuk men-cache nilai variabel bersama dengan daftar ketergantungan.

Apakah useMemo memicu rendering ulang?

Ya, itu sangat mungkin. Apa useMemo lakukan adalah setelah rerender terjadi, membandingkan nilai-nilai dalam dependensi array, jika mereka tidak berubah maka nilai terakhir dihitung dikembalikan, jika tidak menghitung ulang.

Bagaimana cara menggunakan useEffect dan useCallback?

Satu-satunya cara kode useEffect dapat melakukan apa pun yang terlihat adalah dengan mengubah status untuk menyebabkan rendering ulang atau memodifikasi DOM secara langsung.

Apakah useMemo dangkal?

memo menggunakan perbandingan yang dangkal dari props komponen dan karena cara kerja JavaScript, membandingkan objek secara dangkal akan menghasilkan false meskipun mereka memiliki nilai yang sama.