SortableContext untuk Senarai yang Boleh Disusun Semula
Gunakan SortableContext dan useSortable untuk membina senarai yang boleh disusun semula dengan animasi lancar.
SortableContext untuk Senarai yang Boleh Disusun Semula 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.
Fungsi SortableContext
SortableContext ialah komponen dnd-kit khusus yang membungkus senarai yang boleh disusun semula. Walaupun useDraggable dan useDroppable mengendalikan seret dan lepas umum, SortableContext khusus mengendalikan keadaan apabila elemen dalam senarai perlu disusun semula dengan menyeretnya ke kedudukan baharu.
Sifat items
SortableContext memerlukan sifat items: tatasusunan ID rentetan atau nombor yang unik dan sepadan dengan ID yang digunakan dalam komponen boleh susun anak. Susunan tatasusunan ini menentukan susunan semasa elemen. Apabila anda mengemas kini tatasusunan ini dalam keadaan, senarai dipaparkan semula dalam susunan baharu.
Strategi Penyusunan
SortableContext menerima sifat strategy yang mengawal cara elemen disusun. verticalListSortingStrategy adalah untuk senarai menegak dan mengira titik penyisipan berdasarkan kedudukan menegak. horizontalListSortingStrategy adalah untuk senarai mendatar. rectSortingStrategy adalah untuk susun atur berpetak. Pilih strategi yang sepadan dengan susun atur anda.
Cangkuk useSortable
Di dalam SortableContext, setiap elemen senarai menggunakan cangkuk useSortable({ id }) dan bukannya useDraggable. useSortable ialah set lanjutan useDraggable—ia mengembalikan atribut, pendengar, setNodeRef dan transformasi yang sama, serta nilai tambahan khusus untuk penyusunan seperti isDragging dan overIndex.
isDragging untuk Keadaan Visual
Nilai isDragging daripada useSortable adalah benar semasa elemen sedang diseret secara aktif. Biasanya anda menggunakan nilai ini untuk mengurangkan kelegapan atau menambahkan gaya ruang letak pada elemen asal dalam senarai semasa ia diseret. Jurang visual ini menunjukkan kepada pengguna lokasi semasa elemen dalam senarai.
Utiliti arrayMove
dnd-kit mengeksport utiliti arrayMove(array, fromIndex, toIndex) daripada @dnd-kit/sortable. Utiliti ini mengembalikan tatasusunan baharu dengan elemen pada fromIndex dipindahkan ke toIndex. Ini ialah cara piawai untuk mengemas kini tatasusunan keadaan apabila seretan penyusunan selesai.
Melaksanakan onDragEnd untuk Penyusunan
Dalam panggilan balik onDragEnd DndContext untuk senarai boleh susun, anda mencari indeks lama dan baharu menggunakan items.indexOf(event.active.id) dan items.indexOf(event.over?.id). Jika kedua-dua indeks sah dan berbeza, anda memanggil setItems(arrayMove(items, oldIndex, newIndex)) untuk menyusun semula tatasusunan.
Animasi Lancar bagi Elemen yang Dialihkan
Apabila satu elemen diseret, elemen lain dalam senarai bergerak secara beranimasi ke kedudukan baharu untuk menunjukkan tempat elemen yang diseret akan diletakkan. useSortable menyediakan transformasi CSS untuk setiap elemen yang tidak diseret supaya elemen itu beralih keluar dari laluan. Menambahkan peralihan CSS pada transformasi ini menghasilkan animasi pergerakan yang lancar.
Peralihan untuk Pergerakan Lancar
Gunakan peralihan CSS pada sifat transformasi elemen boleh susun: transition: isDragging ? undefined : transform ? 'transform 200ms ease' : undefined. Apabila elemen sedang diseret, tiada peralihan diperlukan kerana elemen itu perlu mengikuti kursor secara langsung. Apabila dialihkan, peralihan menghasilkan animasi gelongsoran yang lancar.
Menggabungkan dengan DragOverlay
Untuk pengalaman pengguna yang terbaik, gabungkan SortableContext dengan DragOverlay. Elemen yang diseret dalam senarai menjadi ruang letak separa lutsinar menggunakan isDragging, manakala DragOverlay memaparkan salinan legap yang ditinggikan dan mengikuti kursor. Pendekatan ini mengelakkan gangguan visual apabila elemen yang diseret melompat antara kedudukan.
Senarai Menegak dan Mendatar
SortableContext berfungsi sama baik untuk senarai menegak (papan tugasan, senarai tugasan) dan senarai mendatar (bar navigasi tab, karusel imej). Tukar antara strategi dengan mengubah sifat strategy. Anda juga boleh menggunakannya untuk susun atur berpetak dengan rectSortingStrategy, yang mengira sel petak terdekat berdasarkan kedudukan seretan.
arrayMove dalam onDragEnd
Apakah argumen yang diterima oleh arrayMove apabila dipanggil dalam onDragEnd untuk menyusun semula senarai boleh susun?
Rumusan Pelajaran: SortableContext
SortableContext membungkus senarai yang boleh disusun semula dan memerlukan tatasusunan elemen dengan ID unik serta strategi (menegak, mendatar atau berpetak). Setiap elemen menggunakan useSortable dan bukannya useDraggable, lalu memperoleh isDragging dan overIndex. Dalam onDragEnd, arrayMove(items, oldIndex, newIndex) menyusun semula tatasusunan. Peralihan CSS pada transformasi menganimasikan elemen yang dialihkan dengan lancar.
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 “SortableContext untuk Senarai yang Boleh Disusun Semula” percuma?
Ya — teks penuh “SortableContext untuk Senarai yang Boleh Disusun Semula” 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 “SortableContext untuk Senarai yang Boleh Disusun Semula”?
Gunakan SortableContext dan useSortable untuk membina senarai yang boleh disusun semula dengan animasi lancar. 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 “SortableContext untuk Senarai yang Boleh Disusun Semula” 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
- Seni Bina dnd-kit dan Reka Bentuk Mengutamakan Kebolehcapaian
- DndContext, useDraggable dan useDroppable
- SortableContext untuk Senarai yang Boleh Disusun Semula
- Tindanan Seretan Tersuai dan DnD Berbilang Bekas