Mendefinisikan Kolom dan Merender Baris
Konfigurasikan definisi kolom dengan accessor, header, dan perender sel untuk menampilkan data Anda.
Mendefinisikan Kolom dan Merender Baris adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.
Tipe ColumnDef
Setiap kolom dalam TanStack Table dijelaskan oleh objek ColumnDef. Dua bidang terpentingnya adalah accessorKey (nama properti pada objek data Anda) dan header (teks label kolom atau fungsi perenderan).
Pendekatan accessorKey ideal untuk data datar; nilai yang kompleks atau terhitung memerlukan accessorFn.
accessorKey dibandingkan dengan accessorFn
Jika data Anda memiliki properti langsung seperti name atau email, gunakan accessorKey: 'name'. Jika Anda perlu menghitung suatu nilai, misalnya menggabungkan firstName dan lastName, gunakan accessorFn: row => row.firstName + ' ' + row.lastName.
Keduanya memiliki tipe lengkap saat Anda memberikan tipe data baris sebagai generik kepada ColumnDef.
Perenderan Sel Kustom dengan cell
Bidang cell dalam ColumnDef menerima fungsi yang menerima konteks cell dan mengembalikan JSX. Dengan cara inilah Anda merender lencana, tombol, gambar, atau antarmuka pengguna kustom apa pun di dalam sel.
Untuk nilai teks biasa, cell.renderValue() sudah memadai. Untuk hal yang lebih kompleks, ambil informasi dari cell.getContext().
Membangun Larik Kolom
Tentukan kolom di luar komponen agar tidak dibuat ulang pada setiap perenderan. Teruskan larik tersebut ke useReactTable bersama data dan getCoreRowModel.
TypeScript akan menyimpulkan tipe kolom saat Anda memberi anotasi pada ColumnDef dengan tipe data Anda, sehingga Anda mendapatkan pelengkapan otomatis untuk nilai accessorKey.
Penjelasan getCoreRowModel
getCoreRowModel adalah fungsi pabrik yang diimpor dari @tanstack/react-table. Teruskan nilai yang dikembalikannya ke useReactTable untuk memberi tahu instans tersebut cara membangun daftar baris dasar dari larik data Anda.
Model baris tambahan (terurut, tersaring, dan terpaginasikan) ditumpuk di atasnya dengan meneruskan fungsi pabrik model tambahan.
Merender thead dengan getHeaderGroups
Panggil table.getHeaderGroups() dan petakan hasilnya untuk merender thead. Setiap grup tajuk memiliki larik headers; setiap header memiliki definisi kolom dan id.
Gunakan flexRender(header.column.columnDef.header, header.getContext()) untuk merender konten tajuk, baik berupa teks maupun fungsi yang mengembalikan JSX.
Merender tbody dengan getRowModel
Panggil table.getRowModel().rows dan petakan setiap baris ke elemen tr. Di dalamnya, panggil row.getVisibleCells() dan petakan setiap cell ke td.
Gunakan flexRender(cell.column.columnDef.cell, cell.getContext()) untuk merender konten sel dengan tetap menghormati perender sel kustom apa pun yang ditentukan di kolom.
Utilitas flexRender
flexRender adalah pembantu yang menerima komponen React, fungsi yang mengembalikan JSX, atau nilai biasa, lalu merendernya secara konsisten. Utilitas ini memungkinkan definisi kolom menggunakan teks sederhana atau fungsi perenderan lengkap untuk tajuk dan sel.
Antarmuka terpadu ini berarti Anda tidak perlu memeriksa tipe definisi sebelum merendernya.
Konteks Sel dan renderValue
cell.renderValue() mengembalikan nilai mentah yang diakses, yang diformat sebagai teks. Untuk kontrol lebih besar, cell.getContext() menyediakan konteks perenderan lengkap, termasuk baris, kolom, instans tabel, dan nilai mentah.
Perender sel kustom menggunakan konteks tersebut untuk mengakses data baris terkait di luar satu nilai yang diakses.
Penyematan Kolom dan Metadata
Setiap ColumnDef menerima bidang meta tempat Anda dapat melampirkan metadata sewenang-wenang seperti isSticky: true atau alignment: 'right'. Akses metadata tersebut di perender melalui column.columnDef.meta.
Untuk menyematkan kolom ke kiri atau kanan, TanStack Table menyediakan status penyematan kolom dan metode pembantu pada objek kolom.
Menyatukan Semuanya
Tentukan larik ColumnDef dengan accessorKey, header, dan cell opsional. Panggil useReactTable dengan data, columns, dan getCoreRowModel. Petakan getHeaderGroups untuk thead dan getRowModel().rows untuk tbody, dengan menggunakan flexRender untuk merender setiap tajuk dan sel.
Penyiapan minimal ini memberi Anda tabel yang berfungsi penuh dan sepenuhnya dapat ditata sesuai keinginan.
accessorKey dibandingkan dengan accessorFn
Kapan Anda harus menggunakan accessorFn, bukan accessorKey, dalam definisi kolom TanStack Table?
Rangkuman Pelajaran
Tentukan kolom menggunakan ColumnDef dengan accessorKey untuk bidang langsung atau accessorFn untuk nilai terhitung. Teruskan columns dan getCoreRowModel ke useReactTable, lalu lakukan perenderan menggunakan getHeaderGroups untuk tajuk dan getRowModel().rows untuk baris isi.
Utilitas flexRender menangani definisi tajuk dan sel berbasis teks maupun fungsi secara seragam.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mendefinisikan Kolom dan Merender Baris” gratis?
Ya — teks lengkap “Mendefinisikan Kolom dan Merender Baris” 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 “Mendefinisikan Kolom dan Merender Baris”?
Konfigurasikan definisi kolom dengan accessor, header, dan perender sel untuk menampilkan data Anda. 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 2 dari 4.
Berapa lama pelajaran “Mendefinisikan Kolom dan Merender Baris” 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
- Filosofi TanStack Table dan Desain Tanpa Antarmuka
- Mendefinisikan Kolom dan Merender Baris
- Pengurutan, Pemfilteran, dan Paginasi
- Pemilihan Baris dan Tabel Tervirtualisasi