veilletech.fr
14 oct. Feed du jour
#09 FRONT Article

TanStack Charts 1.0 : une API enfin stable

Le bon graphique est celui qu'on ne regrette pas d'avoir embarqué.

TanStack Charts passe en 1.0 avec une API stable et un guide de migration : une grammaire de graphiques typée et tree-shakable pour SVG et Canvas, avec des entrées compatibles D3. Les auteurs publient une comparaison de poids gzip (août 2026) : 29 ko, contre 97 ko pour Recharts. React Native reste expérimental.

2 min de lectureintermédiairevidéo 1:16
Partager
Sommaire5 sections
  1. Ce qui se passe
  2. Le modèle
  3. Rendu et poids
  4. Comment s'y prendre
  5. À retenir

Ce qui se passe

TanStack publie la version 1.0 de Charts, que sa page d'accueil présente comme une grammaire de graphiques qu'on n'a pas à dépasser. L'API est déclarée stable, avec un guide de migration pour les versions précédentes ; la prise en charge de React Native reste expérimentale.

Le modèle

Un graphique se déclare avec defineChart : des marks (points, lignes, aires), des échelles et des canaux de données. Les champs, le type de chaque ligne de données, les domaines et clés inférés, les infobulles et les callbacks de focus remontent tous aux données passées ; une définition invalide échoue à la compilation, et chacun des 188 exemples du catalogue compile en TypeScript strict.

TSX
import { defineChart, dot } from '@tanstack/charts'
import { scaleLinear } from '@tanstack/charts/scales/linear'
import { Chart } from '@tanstack/charts/react'

const revenueVsRetention = defineChart({
  marks: [dot(accounts, { x: 'monthlyRevenue', y: 'retention', key: 'id' })],
  scales: {
    x: { scale: scaleLinear, axis: { label: 'Revenu mensuel (k$)' } },
    y: { scale: scaleLinear, axis: { label: 'Rétention à 90 jours' } },
  },
})

export const RevenueChart = () => (
  <Chart definition={revenueVsRetention} ariaLabel="Rétention selon le revenu" />
)

Rendu et poids

Le site publie un tableau de poids minifié et gzippé, daté d'août 2026 :

Bibliothèque Poids
uPlot 22 ko
TanStack Charts 29 ko
Chart.js 46 ko
visx 49 ko
Recharts 97 ko
Apache ECharts 157 ko

Limite : c'est la mesure des auteurs, sans protocole détaillé. La page donne aussi 32,1 ko gzip pour un graphique en ligne React de base, sans expliquer l'écart avec les 29 ko du tableau.

Comment s'y prendre

  1. Prendre un graphique réel de l'application, pas l'exemple de démonstration.
  2. Le reconstruire avec defineChart et comparer le poids du bundle.
  3. Lire le guide de migration avant de s'engager sur une base existante.

Source : TanStack Charts, TanStack, 13 octobre 2026.