0Pricing
React Academy · Pelajaran

Pemilihan Baris dan Tabel Tervirtualisasi

Tambahkan pemilihan baris dengan kotak centang dan gabungkan TanStack Table dengan TanStack Virtual untuk merender kumpulan data besar.

Pemilihan Baris dan Tabel Tervirtualisasi adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 4 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.

Mengaktifkan Pemilihan Baris

Tambahkan kolom pemilihan ke larik ColumnDef menggunakan id 'select'. Sel merender kotak centang yang dihubungkan ke row.getToggleSelectedHandler(). Tajuk merender kotak centang untuk memilih semua menggunakan table.getToggleAllRowsSelectedHandler().

Teruskan juga status rowSelection dan onRowSelectionChange ke useReactTable.

Memeriksa Status Pemilihan

row.getIsSelected() mengembalikan true ketika suatu baris sedang dipilih, sehingga cocok untuk menerapkan gaya latar belakang yang disorot pada baris terpilih.

row.getIsSomeSelected() menangani status kotak centang tak tentu ketika hanya beberapa baris dalam suatu grup yang dipilih, yang berguna untuk tabel yang dikelompokkan.

Mendapatkan Baris yang Dipilih

table.getSelectedRowModel().rows mengembalikan larik semua objek baris yang saat ini dipilih. Setiap baris memiliki properti row.original yang berisi objek data asli.

Beginilah cara Anda membuat tombol tindakan massal yang beroperasi pada kumpulan yang dipilih, seperti "Hapus yang dipilih" atau "Ekspor yang dipilih".

Pola Antarmuka Tindakan Massal

Render tombol tindakan secara kondisional berdasarkan table.getSelectedRowModel().rows.length > 0. Jika tidak ada baris yang dipilih, sembunyikan atau nonaktifkan bilah alat tindakan massal agar tidak menimbulkan interaksi keadaan kosong yang membingungkan.

Tampilkan jumlah yang dipilih pada antarmuka: "{count} baris dipilih" agar pengguna selalu mengetahui pilihannya.

Mengapa Tabel Perlu Divirtualisasi?

Merender 10.000 baris sebagai simpul DOM sangat lambat. Browser harus menata letak, menggambar, dan memelihara ribuan elemen. Pengguna akan mengalami pengguliran tersendat dan perenderan awal yang lambat.

Virtualisasi hanya merender baris yang sedang terlihat di area pandang, sehingga ukuran DOM berkurang drastis dan kinerja meningkat.

Menginstal TanStack Virtual

Instal @tanstack/react-virtual bersama @tanstack/react-table. Kedua pustaka tersebut terpisah, tetapi dirancang untuk saling melengkapi. TanStack Table mengelola logika data Anda, sedangkan TanStack Virtual mengelola item yang dirender di DOM.

Titik integrasinya adalah larik baris dari table.getRowModel().rows.

Penyiapan useVirtualizer

Panggil useVirtualizer({ count: table.getRowModel().rows.length, getScrollElement: () => tableContainerRef.current, estimateSize: () => 35 }). count menentukan jumlah item virtual yang ada, sesuai dengan jumlah baris tabel saat ini setelah semua penyaringan.

estimateSize menyediakan perkiraan awal tinggi baris; tinggi sebenarnya diukur saat baris dirender.

Merender Item Virtual

Panggil virtualizer.getVirtualItems() untuk mendapatkan hanya baris yang saat ini seharusnya berada di DOM. Lakukan iterasi pada larik ini, akses baris sebenarnya melalui table.getRowModel().rows[virtualRow.index], lalu render hanya elemen tr tersebut.

Setiap item virtual memiliki properti start untuk penempatan absolut di dalam wadah pengguliran.

Menambahkan Div Pengisi Spasi

Untuk mempertahankan posisi pengguliran yang benar, tambahkan div pengisi spasi atas dengan tinggi yang sama dengan start item virtual pertama, serta div pengisi spasi bawah dengan tinggi sebesar ukuran total dikurangi end item terakhir.

Div yang tidak terlihat ini mengisi ruang yang seharusnya ditempati baris yang tidak dirender, sehingga proporsi bilah gulir tetap benar.

Tinggi Baris Dinamis dengan measureElement

Teruskan measureElement: el => el.getBoundingClientRect().height ke useVirtualizer untuk mendapatkan tinggi baris dinamis yang akurat. Referensi setiap baris dilampirkan ke elemen tr sehingga virtualizer dapat mengukur tinggi sebenarnya yang dirender.

Ini menangani baris dengan isi yang bervariasi (teks beberapa baris, baris yang diperluas) tanpa pergeseran tata letak.

Menggabungkan Semua Fitur

TanStack Table dengan pengurutan, penyaringan, paginasi, pemilihan baris, dan TanStack Virtual dapat digabungkan. Jumlah baris yang diteruskan ke useVirtualizer harus berasal dari table.getRowModel().rows setelah semua model baris aktif memproses data.

Dengan paginasi diaktifkan, lakukan paginasi terlebih dahulu, lalu virtualisasi baris halaman saat ini untuk pengguliran yang lancar dalam halaman besar.

Pemilihan Baris TanStack Table

Metode mana yang mengembalikan objek data asli untuk semua baris yang saat ini dipilih?

Ringkasan Pelajaran

Pemilihan baris menggunakan kolom kotak centang dengan getToggleSelectedHandler, status rowSelection, dan table.getSelectedRowModel().rows untuk mengakses data yang dipilih. Virtualisasi dengan useVirtualizer hanya merender baris yang terlihat menggunakan getVirtualItems, div pengisi spasi, dan measureElement opsional untuk tinggi dinamis.

Semua fitur TanStack Table (pengurutan, penyaringan, paginasi, pemilihan) dapat digabungkan dengan baik dengan perenderan virtual.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pemilihan Baris dan Tabel Tervirtualisasi” gratis?

Ya — teks lengkap “Pemilihan Baris dan Tabel Tervirtualisasi” 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 “Pemilihan Baris dan Tabel Tervirtualisasi”?

Tambahkan pemilihan baris dengan kotak centang dan gabungkan TanStack Table dengan TanStack Virtual untuk merender kumpulan data besar. 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 4 dari 4.

Berapa lama pelajaran “Pemilihan Baris dan Tabel Tervirtualisasi” 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

  1. Filosofi TanStack Table dan Desain Tanpa Antarmuka
  2. Mendefinisikan Kolom dan Merender Baris
  3. Pengurutan, Pemfilteran, dan Paginasi
  4. Pemilihan Baris dan Tabel Tervirtualisasi
← Kembali ke React Academy