Arsitektur dnd-kit dan Desain yang Mengutamakan Aksesibilitas
Pahami model sensor dnd-kit, pengumuman aksesibilitas, serta perbedaannya dari react-beautiful-dnd.
Arsitektur dnd-kit dan Desain yang Mengutamakan Aksesibilitas 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.
Mengapa dnd-kit Menggantikan react-beautiful-dnd
react-beautiful-dnd dahulu merupakan pustaka seret dan lepas andalan untuk React, tetapi secara resmi diarsipkan pada 2023 dan tidak lagi dipelihara. Komunitas segera mengandalkan dnd-kit sebagai pengganti yang direkomendasikan, yang dirancang dari awal dengan mempertimbangkan React modern dan aksesibilitas.
Arsitektur Inti dnd-kit
dnd-kit dibangun berdasarkan tiga konsep arsitektur utama: DndContext mengelola semua status seret dan mengoordinasikan elemen yang dapat diseret serta target pelepasan, sensor mengabstraksikan metode masukan agar logika seret yang sama dapat digunakan untuk tetikus, sentuhan, dan papan ketik, sedangkan pengubah memungkinkan Anda menempelkan, membatasi, atau mengubah gerakan seret.
Sensor: Abstraksi Masukan
dnd-kit menyediakan tiga sensor bawaan. PointerSensor menangani masukan tetikus dan sentuhan melalui Pointer Events API terpadu. KeyboardSensor memungkinkan seret dan lepas sepenuhnya hanya dengan papan ketik. TouchSensor menangani peristiwa sentuhan lama. Anda mengonfigurasi sensor melalui prop sensors pada DndContext.
Petunjuk Seret dan Lepas dengan Papan Ketik
dnd-kit memiliki navigasi papan ketik bawaan untuk aksesibilitas. Pengguna menekan Spasi untuk mengambil suatu item, Tombol panah untuk memindahkannya ke posisi baru, Spasi lagi untuk melepaskannya, dan Esc untuk membatalkan seretan tanpa melakukan perubahan. Interaksi ini diumumkan secara otomatis kepada pengguna pembaca layar.
Dukungan ARIA dan Pembaca Layar
dnd-kit secara otomatis menerapkan aria-grabbed pada item yang dapat diseret untuk menunjukkan status pengambilannya kepada teknologi bantu. Pustaka ini menggunakan aria-dropeffect pada zona target pelepasan untuk menyampaikan apa yang akan terjadi saat item dilepaskan. Wilayah langsung mengumumkan pembaruan status agar pengguna pembaca layar mendengar konfirmasi seperti "Item diambil" atau "Item berhasil dilepas."
Desain dengan Tree-Shaking dan Tanpa CSS
dnd-kit dirancang agar mendukung tree-shaking, artinya Anda hanya mengimpor bagian yang benar-benar digunakan. Tidak ada CSS bawaan — semua penataan visual menjadi tanggung jawab Anda, sehingga Anda memiliki kendali penuh atas tampilan elemen yang dapat diseret, lapisan, dan zona pelepasan. Hal ini menjaga ukuran bundel tetap minimal.
Callback Peristiwa DndContext
DndContext menyediakan tiga callback peristiwa utama untuk melacak siklus hidup seretan. onDragStart dipanggil saat pengguna mulai menyeret dan menerima ID item aktif. onDragOver dipanggil terus-menerus saat item yang diseret bergerak di atas target pelepasan. onDragEnd dipanggil saat seretan selesai dan memberikan item aktif serta target pelepasan.
Mengonfigurasi Sensor pada DndContext
Anda meneruskan array konfigurasi sensor ke DndContext menggunakan prop sensors yang digabungkan dengan hook useSensors. Setiap sensor diinisialisasi dengan useSensor(SensorClass, options). Misalnya, Anda dapat mengonfigurasi PointerSensor dengan jarak seret minimum untuk mencegah seretan yang tidak disengaja saat mengeklik.
Pengubah untuk Membatasi Gerakan
Pengubah mengubah koordinat seret sebelum diterapkan pada elemen yang diseret. restrictToVerticalAxis mengunci gerakan ke satu arah. restrictToParentElement menjaga item yang diseret tetap berada di dalam wadahnya. snapCenterToCursor menempelkan elemen sehingga pusatnya mengikuti kursor. Anda dapat menggabungkan beberapa pengubah dalam sebuah array.
Sistem ID Target Pelepasan dan Elemen Seret
Setiap elemen yang dapat diseret dan target pelepasan memerlukan ID unik berupa teks atau angka. ID ini merupakan cara utama dnd-kit melacak apa yang sedang diseret dan di mana item tersebut dilepaskan. Dalam onDragEnd, Anda membaca event.active.id untuk item yang diseret dan event.over?.id untuk target pelepasan guna memperbarui status aplikasi.
Filosofi yang Mengutamakan Aksesibilitas
Tidak seperti banyak pustaka seret dan lepas yang menganggap dukungan papan ketik sebagai tambahan belakangan, dnd-kit menempatkan aksesibilitas sebagai inti desainnya. KeyboardSensor merupakan fitur utama dengan kemampuan yang sama seperti PointerSensor. Semua atribut ARIA dikelola secara otomatis, dan pengumuman khusus dapat dikonfigurasi melalui prop accessibility pada DndContext.
Pemeriksaan Sensor Papan Ketik
Tombol apa yang digunakan dnd-kit untuk membatalkan seretan papan ketik yang sedang berlangsung tanpa melakukan perubahan?
Ringkasan Pelajaran: Dasar-Dasar dnd-kit
dnd-kit menggantikan react-beautiful-dnd yang telah diarsipkan sebagai standar komunitas untuk seret dan lepas di React. Arsitekturnya berpusat pada DndContext untuk status, sensor untuk abstraksi masukan (penunjuk, papan ketik, dan sentuhan), serta pengubah untuk membatasi gerakan. Aksesibilitas menjadi prioritas utama: atribut ARIA, pengumuman wilayah langsung, dan navigasi papan ketik lengkap telah tersedia.
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 “Arsitektur dnd-kit dan Desain yang Mengutamakan Aksesibilitas” gratis?
Ya — teks lengkap “Arsitektur dnd-kit dan Desain yang Mengutamakan Aksesibilitas” 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 “Arsitektur dnd-kit dan Desain yang Mengutamakan Aksesibilitas”?
Pahami model sensor dnd-kit, pengumuman aksesibilitas, serta perbedaannya dari react-beautiful-dnd. 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 “Arsitektur dnd-kit dan Desain yang Mengutamakan Aksesibilitas” 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
- Arsitektur dnd-kit dan Desain yang Mengutamakan Aksesibilitas
- DndContext, useDraggable, dan useDroppable
- SortableContext untuk Daftar yang Dapat Diurutkan Ulang
- Overlay Seret Kustom dan DnD Banyak Kontainer