Saat mengelola status kompleks di aplikasi Berikutnya, banyak hal bisa menjadi rumit dengan cepat. Kait tradisional seperti useState bantuan dengan manajemen negara tetapi menghadirkan masalah pengeboran prop. Pengeboran penyangga berarti meneruskan data atau fungsi ke bawah melalui beberapa komponen.
Pendekatan yang lebih baik akan memisahkan logika manajemen status Anda dari komponen dan memperbarui status ini dari mana saja di aplikasi Anda. Kami akan memandu Anda tentang cara menggunakan API Konteks saat kami membuat aplikasi daftar tugas sederhana.
Sebelum Anda Memulai Daftar Tugas Anda
Sebelum Anda dapat membuat aplikasi daftar tugas, Anda memerlukan:
Pengetahuan dasar tentang operator JavaScript modern Dan Kait useState React.
Pemahaman tentang cara merusak array dan objek dalam JavaScript.
Node v16.8 atau yang lebih baru diinstal pada mesin lokal Anda dan familiar dengannya manajer paket seperti npm atau benang.
Anda dapat menemukan proyek yang sudah selesai di GitHub untuk referensi dan eksplorasi lebih lanjut.
Status aplikasi mengacu pada kondisi aplikasi saat ini pada titik waktu tertentu. Ini termasuk informasi yang diketahui dan dikelola oleh aplikasi, seperti input pengguna dan data yang diambil dari database atau API (Application Programming Interface).
Untuk memahami status aplikasi, pertimbangkan kemungkinan status aplikasi penghitung sederhana. Mereka termasuk:
Keadaan default ketika penghitung berada di nol.
Keadaan yang meningkat ketika penghitung bertambah satu.
Keadaan yang menurun ketika penghitung berkurang satu.
Keadaan reset ketika penghitung kembali ke keadaan default.
Komponen React dapat mengikuti perubahan status. Saat pengguna berinteraksi dengan komponen semacam itu, tindakannya—seperti klik tombol—dapat mengelola pembaruan ke status.
Cuplikan ini menampilkan aplikasi penghitung sederhana, dalam status defaultnya, yang mengelola status berdasarkan tindakan klik:
const [penghitung, setCounter] = useState(0);
kembali (
{counter}</h1>
Pengaturan dan Instalasi
Repositori proyek berisi dua cabang: starter Dan konteks. Anda dapat menggunakan cabang pemula sebagai basis untuk membangun proyek dari atau cabang konteks untuk melihat demo final.
Mengkloning Aplikasi Pemula
Aplikasi awal menyediakan UI yang Anda perlukan untuk aplikasi akhir, sehingga Anda dapat berfokus pada penerapan logika inti. Buka terminal dan jalankan perintah berikut untuk mengkloning cabang awal repositori ke mesin lokal Anda:
Jalankan perintah berikut, di dalam direktori proyek, untuk menginstal dependensi dan memulai server pengembangan Anda:
benang && benang dev
Atau:
npm i && npm jalankan dev
Jika semuanya berjalan lancar, UI akan ditampilkan di browser Anda:
Menerapkan Logika
Context API menyediakan cara untuk mengelola dan berbagi data status di seluruh komponen, tanpa memerlukan pengeboran penyangga manual.
Langkah 1: Buat dan Ekspor Konteks
Membuat src/aplikasi/konteks folder untuk menyimpan file konteks dan menjaga direktori proyek tetap teratur. Di dalam folder ini, buat a todo.context.jsx file yang akan berisi semua logika konteks untuk aplikasi.
Impor createContext fungsi dari reaksi perpustakaan dan menyebutnya, menyimpan hasilnya dalam variabel:
Tepat sebelum kembali pernyataan, buat a handleTodoInput fungsi yang akan dijalankan saat pengguna mengetikkan daftar tugas. Fungsi ini kemudian memperbarui tugas negara.
Tambah sebuah buatTugas fungsi yang akan dijalankan saat pengguna mengirimkan tugas. Fungsi ini memperbarui tugas menyatakan dan memberikan tugas baru ID acak.
Langkah 3: Tambahkan Status dan Penangan ke Penyedia
Sekarang Anda telah membuat status dan kode tertulis untuk mengelolanya, Anda perlu membuat status dan fungsi penangan ini tersedia untuk Pemberi. Anda dapat menyediakannya dalam bentuk objek, menggunakan nilai properti dari Pemberi komponen.
Itu Pemberi yang Anda buat harus membungkus komponen tingkat atas agar konteks tersedia untuk seluruh aplikasi. Untuk melakukan ini, edit src/app/page.jsx dan bungkus Semuanya komponen dengan TodoContextProvider komponen:
; </TodoContextProvider>;
Langkah 5: Gunakan Konteks di Komponen
Edit Anda src/app/components/Todos.jsx file dan hancurkan tugas, tugas, handleTodoInput, Dan buatTugas melalui panggilan ke useTodoContext fungsi.
Sekarang, perbarui elemen formulir untuk menangani acara kirim dan ubah bidang input utama:
Langkah 6: Render Tugas di UI
Anda sekarang dapat menggunakan aplikasi untuk membuat dan menambahkan tugas ke tugas daftar. Untuk memperbarui tampilan, Anda harus memetakan melalui yang sudah ada tugas dan merendernya di UI. Pertama, buat a src/app/components/Todo.jsx komponen untuk menampung satu item agenda.
Dalam src/app/components/Todo.jsx komponen, edit atau hapus tugas dengan menjalankan updateTask Dan deleteTask fungsi yang kita buat src/app/context/todo.context.jsx mengajukan.
Untuk merender src/app/components/Todo.jsx komponen untuk masing-masing tugas, masuk ke src/app/components/Todos.jsx file dan peta kondisional melalui tugas tepat setelah tajuk tag penutup.
Uji aplikasi Anda di browser dan konfirmasikan bahwa aplikasi tersebut memberikan hasil yang diharapkan.
Menyimpan Tugas di Penyimpanan Lokal
Saat ini, menyegarkan halaman akan menyetel ulang tugas, membuang tugas yang telah Anda buat. Salah satu cara untuk memperbaiki masalah ini adalah dengan menyimpan tugas di penyimpanan lokal browser.
API penyimpanan Web adalah peningkatan pada penyimpanan cookie, dengan fitur yang meningkatkan pengalaman bagi pengguna dan pengembang.