Membaca dan Menulis Atom dengan useAtom
Gunakan useAtom, useAtomValue, dan useSetAtom untuk membaca serta memperbarui atom di seluruh pohon komponen.
Membaca dan Menulis Atom dengan useAtom adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar React Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus React Academy mencakup 4 pelajaran total.
useAtom: Kait Utama
useAtom(someAtom) mengembalikan [value, setter], yang meniru API useState. value adalah status atom saat ini; setter memperbaruinya. Gunakan ini ketika sebuah komponen membaca sekaligus menulis atom.
Fungsi penyetel menerima nilai baru atau fungsi pembaru: setCount(c => c + 1).
useAtomValue: Akses Hanya-Baca
useAtomValue(someAtom) hanya mengembalikan nilai saat ini, tanpa fungsi penyetel. Gunakan ini dalam komponen yang hanya menampilkan data, yang membaca status tetapi tidak pernah mengubahnya.
Karena komponen tidak menyimpan referensi fungsi penyetel, maksudnya terdokumentasi dengan jelas dalam kode: komponen ini adalah pembaca murni.
useSetAtom: Akses Hanya-Tulis
useSetAtom(someAtom) hanya mengembalikan fungsi penyetel. Yang penting, fungsi ini tidak membuat komponen berlangganan pada nilai atom. Komponen tidak pernah dirender ulang ketika atom berubah.
Gunakan ini untuk komponen yang hanya menangani tindakan, seperti tombol yang mengirimkan perubahan status tetapi tidak menampilkan antarmuka turunan apa pun.
Mengapa useSetAtom Penting bagi Kinerja
Komponen yang memanggil useSetAtom(countAtom) untuk menambah penghitung tidak akan pernah dirender ulang ketika countAtom berubah karena komponen tersebut tidak memiliki langganan nilai. Hanya komponen yang menampilkan jumlah yang dirender ulang.
Ini adalah optimasi sederhana tetapi kuat: pisahkan penulis dari pembaca untuk mencegah render ulang berantai.
atomWithStorage untuk Persistensi
Impor atomWithStorage dari jotai/utils. Gunakan seperti atom(), tetapi teruskan kunci penyimpanan sebagai argumen pertama: atomWithStorage('theme', 'light'). Atom tersebut secara otomatis disinkronkan dengan localStorage.
Saat halaman dimuat ulang, atom mengambil data dari localStorage. Semua komponen yang membaca atom tersebut langsung menggunakan nilai yang tersimpan.
Mengatur Ulang atomWithStorage
Simbol RESET dari jotai/utils dapat diteruskan ke fungsi penyetel atomWithStorage: setter(RESET). Tindakan ini menghapus entri localStorage dan mengatur ulang atom ke nilai awalnya.
Hal ini berguna untuk alur keluar atau tombol "atur ulang ke nilai bawaan" pada halaman pengaturan.
Keluarga Atom dengan atomFamily
atomFamily dari jotai/utils membuat pabrik yang mengembalikan atom berparameter. Misalnya, atomFamily(id => atom(null)) membuat atom terpisah untuk setiap id unik yang diteruskan.
Ini ideal untuk status per item seperti selectedAtom(itemId) atau expandedAtom(rowId), tanpa perlu mengelola satu atom peta yang besar.
Pembersihan Keluarga Atom
Keluarga atom dapat berkembang tanpa batas jika ID terus bertambah. Gunakan atomFamily.setShouldRemove((createdAt, param) => ...) untuk menentukan predikat pembersihan yang dipanggil Jotai saat memutuskan apakah anggota keluarga yang kedaluwarsa perlu dikeluarkan.
Untuk daftar yang itemnya ditambahkan dan dihapus, selalu bersihkan entri keluarga atom ketika item dihapus agar tidak terjadi kebocoran memori.
Jotai DevTools
Paket jotai-devtools menyediakan panel visual yang mencantumkan semua atom aktif beserta nilainya saat ini. Instal paket tersebut, bungkus aplikasi Anda dengan DevTools, lalu periksa status atom secara waktu nyata.
Setiap pembaruan atom dicatat bersama nilai sebelumnya dan berikutnya, sehingga penelusuran kesalahan pada interaksi atom yang kompleks menjadi mudah.
Contoh Render Ulang Selektif
Dalam daftar besar, komponen ListContainer dapat menggunakan useSetAtom(selectedIdAtom) untuk memperbarui pilihan tanpa berlangganan ke selectedIdAtom. Hanya komponen ListItem individual yang memanggil useAtomValue(selectedIdAtom) yang dirender ulang saat pilihan berubah.
Pola ini dapat diskalakan dengan baik: menambahkan ribuan item ke daftar tidak memperlambat pembaruan pilihan.
Menggabungkan Tiga Kait
Pilih kait yang sesuai dengan kebutuhan komponen Anda: useAtomValue untuk tampilan murni, useSetAtom untuk tindakan murni, dan useAtom jika Anda memerlukan keduanya. Rancangan API yang terarah ini membuat tanggung jawab komponen terlihat jelas sekilas.
Komponen bidang formulir biasanya menggunakan useAtom; tombol kirim menggunakan useSetAtom; label yang menampilkan jumlah menggunakan useAtomValue.
useSetAtom dibandingkan useAtom
Apa keunggulan utama menggunakan useSetAtom alih-alih useAtom?
Ringkasan Pelajaran
useAtom memberikan nilai dan fungsi penyetel; useAtomValue hanya memberikan nilai (langganan baca); useSetAtom hanya memberikan fungsi penyetel (tidak ada render ulang saat nilai berubah). atomWithStorage menyimpan nilai ke localStorage dengan dukungan RESET, dan atomFamily membuat atom per parameter untuk daftar dinamis.
Memilih kait yang tepat meminimalkan render ulang yang tidak diperlukan dan memperjelas maksud komponen.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Membaca dan Menulis Atom dengan useAtom” gratis?
Ya — teks lengkap “Membaca dan Menulis Atom dengan useAtom” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus React Academy, upgrade ke CoddyKit PRO. Kursus React Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Membaca dan Menulis Atom dengan useAtom”?
Gunakan useAtom, useAtomValue, dan useSetAtom untuk membaca serta memperbarui atom di seluruh pohon komponen. Kamu berlatih React Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai React Academy?
Tidak diperlukan pengalaman sebelumnya. React Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Membaca dan Menulis Atom dengan useAtom” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran React Academy ini?
Ya. Setiap pelajaran React Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Atom: Unit State dalam Jotai
- Membaca dan Menulis Atom dengan useAtom
- Atom Turunan dan Atom Asinkron
- Jotai vs Zustand vs Context: Kapan Menggunakan Masing-Masing