Menangani Peristiwa Penyimpanan Antar-Tab
Tanggapi perubahan localStorage di tab peramban lain menggunakan pendengar peristiwa storage.
Menangani Peristiwa Penyimpanan Antar-Tab adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.
Masalah Data Lama Antartab
Ketika pengguna membuka aplikasi Anda di dua tab dan memperbarui nilai di tab A, tab B masih menampilkan status lama. Setiap tab memiliki status React-nya sendiri di memori, meskipun keduanya berbagi localStorage.
Tanpa koordinasi, tab-tab tersebut tidak sepakat tentang nilai saat ini.
Peristiwa Penyimpanan Terpicu di Tab Lain
Peramban mengirimkan peristiwa storage pada tab lain dari asal yang sama setiap kali localStorage berubah. Yang penting, peristiwa ini tidak terpicu pada tab yang melakukan perubahan.
Inilah sinyal yang diperlukan tab B untuk mengetahui bahwa tab A telah memperbarui sesuatu.
Mendengarkan dengan addEventListener
Di dalam useEffect, Anda memanggil window.addEventListener('storage', handler) lalu mengembalikan fungsi pembersihan yang menghapusnya. Ini mendaftarkan komponen untuk menerima perubahan antartab.
Efek tersebut sebaiknya berjalan sekali saat komponen dipasang, sehingga larik dependensi kosong atau stabil sesuai digunakan.
Properti StorageEvent
Objek peristiwa membawa key (kunci yang berubah), oldValue dan newValue (teks sebelum dan sesudah perubahan), serta storageArea (objek penyimpanan yang terdampak).
Kunci null dengan nilai null berarti seluruh penyimpanan telah dihapus.
Menyaring Kunci Anda
Peristiwa penyimpanan terpicu untuk setiap kunci dalam asal tersebut, jadi penangan Anda harus memeriksa event.key === yourKey sebelum bertindak. Mengabaikan kunci yang tidak terkait mencegah perenderan ulang yang tidak perlu.
Tangani juga keadaan ketika event.newValue bernilai null, yang berarti kunci tersebut telah dihapus.
Memperbarui Status React saat Peristiwa Terjadi
Saat perubahan yang terkait diterima, uraikan event.newValue dan panggil fungsi pengatur Anda untuk memperbarui status React. Ini menyelaraskan tab kedua dengan perubahan yang dibuat di tempat lain.
Jika digabungkan dengan pengait useLocalStorage, cara ini menyelesaikan sinkronisasi antartab.
Alternatif BroadcastChannel
BroadcastChannel memungkinkan tab dari asal yang sama saling mengirim pesan secara langsung dengan postMessage. Cara ini lebih rapi daripada memanfaatkan peristiwa penyimpanan secara sampingan dan tetap berfungsi tanpa menulis ke localStorage.
Anda membuat saluran berdasarkan nama, mengirim pembaruan, dan mendengarkan peristiwa message.
useSyncExternalStore untuk Penyimpanan
React menyediakan useSyncExternalStore untuk berlangganan ke penyimpanan eksternal dengan cara yang aman dalam lingkungan konkuren. Anda dapat menghubungkan fungsi subscribe-nya ke peristiwa storage dan snapshot-nya ke pembacaan localStorage.
Ini mengintegrasikan pembaruan penyimpanan eksternal dengan benar ke dalam perenderan React.
Kasus Penggunaan Keluar di Semua Tab
Penerapan klasiknya adalah keluar dari semua sesi: ketika satu tab menghapus penanda autentikasi, peristiwa penyimpanan di tab lain mendeteksinya dan mengarahkan ulang tab-tab tersebut ke layar masuk.
Ini mencegah tab yang menampilkan data lama untuk terus menampilkan konten yang memerlukan autentikasi.
Menyinkronkan Mode Gelap Antartab
Tema juga sangat sesuai: mengaktifkan mode gelap di satu tab menulis ke localStorage, peristiwa penyimpanan terpicu di tab lain, lalu tab-tab tersebut segera memperbarui status temanya agar cocok.
Pengguna mendapatkan tampilan yang konsisten, tab mana pun yang dipilih.
Merangkai Semuanya
Sinkronisasi antartab dilakukan dengan mendengarkan peristiwa storage (atau menggunakan BroadcastChannel), menyaring kunci Anda, dan memperbarui status React dari nilai baru.
Untuk langganan yang tangguh dan aman dalam lingkungan konkuren, useSyncExternalStore adalah pilihan modern.
Uji Cepat
Uji pemahaman Anda tentang peristiwa antartab.
Ringkasan
Anda telah mempelajari bahwa peristiwa storage terpicu di tab lain, cara mendengarkannya, menyaring berdasarkan kunci, dan memperbarui status, serta alternatif BroadcastChannel dan useSyncExternalStore.
Anda juga telah melihat kasus penggunaan nyata seperti keluar dari semua sesi dan mode gelap antartab.
Belajar React dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 88
- Pelajaran
- 324
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Menangani Peristiwa Penyimpanan Antar-Tab” gratis?
Ya — teks lengkap “Menangani Peristiwa Penyimpanan Antar-Tab” 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 “Menangani Peristiwa Penyimpanan Antar-Tab”?
Tanggapi perubahan localStorage di tab peramban lain menggunakan pendengar peristiwa storage. 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 3 dari 4.
Berapa lama pelajaran “Menangani Peristiwa Penyimpanan Antar-Tab” 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
- Membaca dan Menulis localStorage di React
- Menyinkronkan Status dengan localStorage
- Menangani Peristiwa Penyimpanan Antar-Tab
- sessionStorage, IndexedDB, dan Memilih API yang Tepat