0Pricing
React Academy · Pelajaran

Atom: Unit State dalam Jotai

Buat atom primitif dengan atom() dan pahami perbedaan desain tanpa Provider Jotai dari Context.

Atom: Unit State dalam Jotai adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.

Apa Itu Atom

Di Jotai, status dipecah menjadi atom: bagian-bagian kecil dan independen dari status reaktif. Setiap atom menyimpan satu nilai dan dibuat di luar komponen dengan atom(initialValue).

Hal ini mencerminkan model mental untuk memecah status menjadi unit-unit terkecil yang bermakna, bukan menjadi satu objek penyimpanan besar.

Atom Bersifat Reaktif

Ketika nilai suatu atom berubah, hanya komponen yang berlangganan pada atom tertentu tersebut yang dirender ulang. Komponen yang membaca atom lain tidak terpengaruh.

Reaktivitas terperinci ini merupakan keunggulan utama Jotai dibandingkan React Context, yang merender ulang semua konsumen setiap kali terjadi perubahan.

Membuat Atom di Luar Komponen

Definisikan atom pada tingkat modul: const countAtom = atom(0). Hal ini memastikan identitas atom tetap stabil di seluruh perenderan dan atom tidak dibuat ulang setiap kali komponen dipasang.

Atom adalah referensi ringan; atom tidak menyimpan nilainya sendiri. Nilai tersebut berada di penyimpanan Jotai.

Tanpa Provider secara Default

Secara default, Jotai menggunakan penyimpanan global implisit. Anda tidak perlu membungkus aplikasi dalam Provider untuk mulai menggunakan atom, sehingga penerapannya pada proyek yang sudah ada menjadi sederhana.

Atom dapat diakses secara global dari komponen mana pun di dalam pohon tanpa meneruskan prop atau merangkai konteks.

Provider Eksplisit untuk Status Terlingkup

Jika Anda memerlukan beberapa instans independen dari pohon komponen yang sama (misalnya, dua formulir terpisah, masing-masing dengan atom status formulirnya sendiri), bungkus setiap formulir dalam Provider Jotai. Setiap Provider membuat penyimpanan yang terisolasi.

Hal ini berguna untuk arsitektur mikro-frontend atau tata letak halaman kompleks dengan pulau-pulau status yang independen.

Penyimpanan Global vs Penyimpanan Terlingkup

Penyimpanan global mempertahankan atom selama masa hidup aplikasi. Penyimpanan Provider terlingkup direset ketika Provider dilepas, sehingga cocok untuk dialog modal atau status tingkat halaman yang tidak seharusnya dipertahankan secara global.

Anda bahkan dapat meneruskan instans penyimpanan khusus ke Provider untuk isolasi perenderan sisi server.

Perbandingan Jotai dan Zustand

Zustand menggunakan satu objek penyimpanan dengan pemilih untuk mencegah perenderan ulang yang tidak perlu. Jotai membagi status menjadi atom, dan setiap komponen hanya berlangganan pada atom yang dibacanya.

Jotai lebih alami untuk status antarmuka pengguna yang terperinci (nilai masukan individual, penanda sakelar). Zustand cocok untuk status aplikasi yang lebih besar dan saling terhubung.

Perbandingan Jotai dan React Context

React Context merender ulang setiap komponen konsumen setiap kali nilai konteks berubah, meskipun komponen yang mengonsumsinya hanya memerlukan satu bidang dari objek konteks tersebut.

Jotai mengatasi hal ini: komponen yang menggunakan useAtom(nameAtom) hanya dirender ulang ketika nameAtom berubah, bukan ketika atom lain berubah.

Identitas dan Kesetaraan Atom

Jotai menggunakan perbandingan Object.is secara default untuk menentukan apakah nilai suatu atom telah berubah. Jika Anda menetapkan atom ke nilai yang sama dengan nilai yang sudah dimilikinya, tidak ada perenderan ulang yang dipicu.

Untuk objek kompleks, gunakan utilitas selectAtom untuk mengambil nilai primitif yang stabil dari atom besar, sehingga mencegah perenderan ulang ketika bidang yang tidak terkait berubah.

Atom vs useState

useState bersifat lokal bagi satu komponen. Atom dibagikan di seluruh pohon komponen tanpa perlu meneruskannya secara eksplisit. Ketika dua komponen saudara membaca atom yang sama, keduanya otomatis tetap selaras.

Hal ini menghilangkan kebutuhan untuk mengangkat status ke tingkat yang lebih tinggi demi berbagi lintas komponen, sekaligus menjaga perenderan ulang tetap minimal.

Contoh Atom Praktis

Atom yang umum digunakan: const themeAtom = atom('light'), const cartItemsAtom = atom([]), const selectedUserIdAtom = atom(null). Atom-atom ini didefinisikan sekali dan diimpor di mana pun dalam aplikasi.

Setiap atom bersifat independen: memperbarui cartItemsAtom tidak memicu perenderan ulang pada komponen yang hanya membaca themeAtom.

Perilaku Render Ulang Jotai dibandingkan Context

Bagaimana perbedaan Jotai dengan React Context dalam hal render ulang?

Ringkasan Pelajaran

Atom adalah unit dasar status dalam Jotai, dibuat dengan atom(initialValue) di luar komponen dan dibagikan ke seluruh pohon tanpa penyedia secara bawaan. Saat sebuah atom berubah, hanya komponen yang berlangganan yang dirender ulang.

Reaktivitas berbutir halus ini merupakan keunggulan utama Jotai dibandingkan React Context, dan model langganan per atomnya berbeda dari pendekatan satu penyimpanan milik Zustand.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Atom: Unit State dalam Jotai” gratis?

Ya — teks lengkap “Atom: Unit State dalam Jotai” 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 “Atom: Unit State dalam Jotai”?

Buat atom primitif dengan atom() dan pahami perbedaan desain tanpa Provider Jotai dari Context. 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 1 dari 4.

Berapa lama pelajaran “Atom: Unit State dalam Jotai” 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

  1. Atom: Unit State dalam Jotai
  2. Membaca dan Menulis Atom dengan useAtom
  3. Atom Turunan dan Atom Asinkron
  4. Jotai vs Zustand vs Context: Kapan Menggunakan Masing-Masing
← Kembali ke React Academy