Définir les colonnes et afficher les lignes
Configurez les définitions de colonnes avec des accesseurs, des en-têtes et des moteurs de rendu de cellules pour afficher vos données
Définir les colonnes et afficher les lignes est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage React Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours React Academy comprend 4 leçons au total.
Le type ColumnDef
Chaque colonne de TanStack Table est décrite par un objet ColumnDef. Les deux champs les plus importants sont accessorKey (le nom de la propriété dans votre objet de données) et l’en-tête (la chaîne qui étiquette la colonne ou la fonction de rendu).
L’approche accessorKey convient parfaitement aux données plates ; les valeurs complexes ou calculées nécessitent accessorFn.
accessorKey contre accessorFn
Lorsque vos données possèdent une propriété directe comme « nom » ou « adresse e-mail », utilisez accessorKey. Lorsque vous devez calculer une valeur, par exemple en combinant firstName et lastName, utilisez accessorFn.
Les deux sont entièrement typés lorsque vous fournissez le type générique des lignes à ColumnDef.
Rendu personnalisé des cellules avec cell
Le champ de cellule d’un ColumnDef accepte une fonction qui reçoit le contexte de la cellule et renvoie du JSX. C’est ainsi que vous affichez des badges, des boutons, des images ou toute autre interface personnalisée dans une cellule.
Pour les valeurs textuelles simples, cell.renderValue() suffit. Pour tout contenu plus riche, déstructurez les informations de cell.getContext().
Construire le tableau de colonnes
Définissez vos colonnes en dehors du composant pour éviter de les recréer à chaque rendu. Transmettez le tableau à useReactTable avec vos données et getCoreRowModel.
TypeScript déduira les types de colonnes lorsque vous annotez ColumnDef avec votre type de données, ce qui vous donnera la complétion automatique pour les valeurs d’accessorKey.
Explication de getCoreRowModel
getCoreRowModel est une fonction de fabrique importée depuis @tanstack/react-table. Transmettez sa valeur de retour à useReactTable pour indiquer à l’instance comment construire la liste de base des lignes à partir de votre tableau de données.
D’autres modèles de lignes (triées, filtrées ou paginées) se superposent ensuite en transmettant des fabriques de modèles supplémentaires.
Rendre thead avec getHeaderGroups
Appelez table.getHeaderGroups() et parcourez le résultat pour afficher votre thead. Chaque groupe d’en-têtes possède un tableau d’en-têtes ; chaque en-tête possède une définition de colonne et un identifiant.
Utilisez flexRender(header.column.columnDef.header, header.getContext()) pour afficher le contenu de l’en-tête, qu’il s’agisse d’une chaîne ou d’une fonction renvoyant du JSX.
Rendre tbody avec getRowModel
Appelez table.getRowModel() et parcourez les lignes pour afficher un élément tr pour chacune d’elles. À l’intérieur, appelez row.getVisibleCells() et parcourez les cellules pour afficher un élément td par cellule.
Utilisez flexRender(cell.column.columnDef.cell, cell.getContext()) pour afficher le contenu des cellules, en respectant tout rendu personnalisé défini dans la colonne.
L’utilitaire flexRender
flexRender est une fonction utilitaire qui accepte un composant React, une fonction renvoyant du JSX ou une valeur simple, puis les affiche de manière cohérente. Elle permet aux définitions de colonnes d’utiliser aussi bien de simples chaînes que des fonctions de rendu complètes pour les en-têtes et les cellules.
Cette interface unifiée signifie que vous n’avez pas besoin de vérifier le type de la définition avant de l’afficher.
Contexte d’une cellule et renderValue
cell.renderValue() renvoie la valeur brute de l’accesseur, mise en forme sous forme de chaîne. Pour un contrôle accru, cell.getContext() fournit l’intégralité du contexte de rendu, notamment la ligne, la colonne, l’instance de tableau et la valeur brute.
Les rendus personnalisés de cellules utilisent ce contexte pour accéder aux autres données de la ligne au-delà de la seule valeur de l’accesseur.
Épinglage des colonnes et métadonnées
Chaque ColumnDef accepte un champ de métadonnées dans lequel vous pouvez associer des informations arbitraires comme isSticky: true ou un alignement à droite. Accédez-y dans votre rendu via column.columnDef et ses métadonnées.
Pour épingler des colonnes à gauche ou à droite, TanStack Table fournit l’état d’épinglage des colonnes et des méthodes utilitaires sur l’objet colonne.
Tout assembler
Définissez un tableau de ColumnDef avec accessorKey, l’en-tête et éventuellement une cellule personnalisée. Appelez useReactTable avec les données, les colonnes et getCoreRowModel. Parcourez getHeaderGroups pour le thead et getRowModel() pour le tbody, en utilisant flexRender pour afficher chaque en-tête et chaque cellule.
Cette configuration minimale vous fournit un tableau entièrement fonctionnel et dont la mise en forme est entièrement personnalisée.
accessorKey contre accessorFn
Quand devez-vous utiliser accessorFn plutôt qu’accessorKey dans une définition de colonne TanStack Table ?
Récapitulatif de la leçon
Définissez les colonnes avec ColumnDef, en utilisant accessorKey pour les champs directs ou accessorFn pour les valeurs calculées. Transmettez les colonnes et getCoreRowModel à useReactTable, puis affichez les en-têtes avec getHeaderGroups et les lignes du corps avec getRowModel().
L’utilitaire flexRender gère uniformément les définitions d’en-têtes et de cellules fondées sur des chaînes ou sur des fonctions.
Questions Fréquemment Posées
La leçon « Définir les colonnes et afficher les lignes » est-elle gratuite ?
Oui — le texte complet de « Définir les colonnes et afficher les lignes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours React Academy, passe à CoddyKit PRO. Le cours React Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Définir les colonnes et afficher les lignes » ?
Configurez les définitions de colonnes avec des accesseurs, des en-têtes et des moteurs de rendu de cellules pour afficher vos données Tu pratiques React Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer React Academy ?
Aucune expérience préalable n'est requise. React Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Définir les colonnes et afficher les lignes » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon React Academy ?
Oui. Chaque leçon React Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Philosophie de TanStack Table et conception sans interface
- Définir les colonnes et afficher les lignes
- Tri, filtrage et pagination
- Sélection de lignes et tableaux virtualisés