Atom Terbitan dan Atom Tak Segerak
Gubah atom terbitan daripada atom lain dan cipta atom tak segerak yang bersepadu dengan Suspense.
Atom Terbitan dan Atom Tak Segerak ialah pelajaran React Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran React Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus React Academy merangkumi sejumlah 4 pelajaran.
Atom Terbitan Baca Sahaja
Cipta atom terbitan dengan menghantar fungsi pengambil: const doubleAtom = atom(get => get(countAtom) * 2). Atom ini tidak mempunyai nilai tersimpan; ia mengira semula setiap kali countAtom berubah.
Atom terbitan sentiasa dikemas kini tanpa sebarang penyegerakan manual. Atom ini ialah padanan Jotai bagi sifat terhitung.
Penjejakan Kebergantungan Automatik
Jotai menjejaki atom yang dicapai di dalam fungsi pengambil dan menilai semula atom terbitan secara automatik apabila mana-mana atom tersebut berubah. Anda tidak perlu mengisytiharkan kebergantungan secara jelas.
Jika pengambil memanggil get(atomA) dan get(atomB), atom terbitan akan dikemas kini setiap kali atomA atau atomB berubah.
Atom Terbitan Boleh Ditulis
Atom terbitan boleh ditulis mempunyai pengambil dan penetap: atom(get => get(baseAtom).toUpperCase(), (get, set, newValue) => set(baseAtom, newValue.toLowerCase())). Pembacaan memberikan nilai yang diubah; penulisan mengubah nilai dan menyimpannya semula.
Pola ini melaksanakan transformasi data dua hala tanpa mendedahkan atom asas secara langsung.
Atom Tak Segerak dengan Janji
Fungsi pengambil boleh menjadi tak segerak: const userAtom = atom(async get => { const id = get(userIdAtom); return await fetchUser(id); }). Jotai menerima Promise daripada pengambil atom secara asli.
Apabila userIdAtom berubah, Jotai menjalankan semula pengambil tak segerak secara automatik dan komponen yang menggunakannya ditangguhkan semasa pengambilan data.
Atom Tak Segerak dan React Suspense
Atom tak segerak disepadukan dengan lancar bersama React Suspense. Balut komponen yang menggunakannya dalam sempadan Suspense dengan nilai sandaran. Komponen ditangguhkan sementara Promise belum selesai dan dipaparkan apabila Promise itu selesai.
Hal ini menghapuskan keperluan mengurus keadaan pemuatan secara manual dalam komponen: tiada penanda isLoading dan tiada useEffect untuk mengambil data.
loadable: Pilihan Keluar daripada Suspense
Import loadable daripada jotai/utils. Balut atom tak segerak: const loadableUserAtom = loadable(userAtom). Komponen yang membaca loadableUserAtom menerima {state: 'loading'}, {state: 'hasData', data: user}, atau {state: 'hasError', error} tanpa ditangguhkan.
Gunakan loadable apabila anda perlu memaparkan keadaan pemuatan tersuai sebaris, bukannya bergantung pada sempadan Suspense.
Menetapkan Semula Atom
Utiliti atomWithReset daripada jotai/utils mencipta atom yang boleh ditetapkan semula kepada nilai awalnya menggunakan simbol RESET. Cara ini lebih kemas daripada menjejaki dan menggunakan semula nilai awal secara manual.
Dalam borang, tetapkan semula semua atom medan ketika penghantaran atau pembatalan dengan memanggil setiap penetap bersama RESET dalam satu pengendali.
Merantai Atom
Atom terbitan boleh membaca daripada beberapa atom lain: const summaryAtom = atom(get => ({ user: get(userAtom), settings: get(settingsAtom), count: get(countAtom) })). Ini mencipta satu rujukan stabil yang dikemas kini apabila mana-mana kebergantungan berubah.
Komponen yang hanya memerlukan ringkasan boleh melanggan summaryAtom, bukannya ketiga-tiga atom individu.
Atom Bersyarat
Atom terbitan boleh membaca atom yang berbeza secara bersyarat: const activeDataAtom = atom(get => get(modeAtom) === 'A' ? get(dataAAtom) : get(dataBAtom)). Apabila modeAtom bertukar, atom terbitan menukar sumber datanya secara automatik.
Jotai melanggan semula atom yang betul pada setiap penilaian, bagi memastikan tiada data lapuk daripada cabang yang tidak aktif.
Pengendalian Ralat Atom Tak Segerak
Jika pengambil atom tak segerak melontarkan ralat atau menolak janji, ralat itu disebarkan kepada sempadan ralat React yang terdekat apabila digunakan bersama Suspense. Dengan loadable, ralat muncul dalam medan state.error untuk dikendalikan sebaris.
Sentiasa gabungkan atom tak segerak dengan sama ada ErrorBoundary atau pembalut loadable dalam kod produksi.
Prestasi Atom Terbitan
Atom terbitan menyimpan hasil terakhirnya dalam cache. Jika semua atom kebergantungan mengembalikan nilai yang sama seperti penilaian sebelumnya, atom terbitan mengembalikan rujukan yang sama dan tiada paparan semula hiliran berlaku.
Untuk terbitan yang mahal seperti transformasi tatasusunan besar, penyimpanan dalam cache ini memberikan manfaat prestasi yang ketara tanpa sebarang konfigurasi tambahan.
Penyepaduan Atom Tak Segerak dan Suspense
Apakah yang berlaku kepada komponen yang membaca atom tak segerak semasa Promise-nya belum selesai?
Ringkasan Pelajaran
Atom terbitan mengira nilai daripada atom lain menggunakan fungsi pengambil dengan penjejakan kebergantungan automatik. Atom tak segerak menggunakan pengambil tak segerak dan disepadukan dengan React Suspense secara lalai; gunakan loadable daripada jotai/utils untuk memilih keluar dan mengendalikan keadaan pemuatan atau ralat sebaris.
Atom terbitan boleh ditulis membolehkan transformasi dua hala, manakala atom bersyarat menukar sumber data secara dinamik berdasarkan nilai atom lain.
Pelajari React dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 88
- Pelajaran
- 324
Soalan Lazim
Adakah pelajaran “Atom Terbitan dan Atom Tak Segerak” percuma?
Ya — teks penuh “Atom Terbitan dan Atom Tak Segerak” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus React Academy, tingkat taraf kepada CoddyKit PRO. Kursus React Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Atom Terbitan dan Atom Tak Segerak”?
Gubah atom terbitan daripada atom lain dan cipta atom tak segerak yang bersepadu dengan Suspense. Anda berlatih React Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan React Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran React Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Atom Terbitan dan Atom Tak Segerak” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran React Academy ini?
Ya. Setiap pelajaran React Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Atom: Unit Keadaan dalam Jotai
- Membaca dan Menulis Atom dengan useAtom
- Atom Terbitan dan Atom Tak Segerak
- Jotai berbanding Zustand berbanding Context: Bila Menggunakan Setiap Satu