Sébastien Rigaux

Veille technologique

← Tous les liens

React

Construction d’interfaces avec des composants React, leur état et leurs cycles de rendu.

ToolEN

react-resizable-panels : trois modèles de layouts redimensionnables

react-resizable-panels.vercel.appPermalien
Visuel violet portant le texte « react resizable panels » à côté d’un symbole de chevrons et d’une barre verticale.

La documentation de react-resizable-panels présente des composants React pour construire des interfaces redimensionnables : panneaux en ligne ou en colonne, grilles ajustables en deux dimensions et workspaces à onglets réorganisables par glisser-déposer.

L’exemple de workspace montre comment fournir un modèle initial avec defaultModel et choisir le contenu d’un onglet via renderTabContent. Le package inclut ses définitions TypeScript.

Carte blanche sur fond bleu pâle affichant « Fixing a Hydration Mismatch Error and UI Flicker in React » et la mention « Blog ».

Dans Next.js, une valeur de localStorage peut faire diverger le HTML rendu côté serveur du premier rendu client. L’article compare les compromis : attendre le montage évite l’erreur, mais retire le contenu réel du HTML SSR ; initialiser les deux rendus avec la même valeur préserve ce contenu, au prix d’une mise à jour ultérieure pouvant provoquer un flicker.

Pour synchroniser une sidebar sans ce clignotement, un script inline applique son état au DOM avant l’hydratation et le transmet à React, qui reprend les mêmes classes. L’article distingue aussi le cas d’un contrôle de thème isolé et celui d’un backdrop mobile géré par CSS.

Giorgi MoniavaRepéré via React Digest

emoji-picker-react fournit un sélecteur d’émojis pour React, utilisable avec ses styles intégrés ou adapté à l’identité visuelle du produit. Le playground interactif permet de tester les propriétés, les thèmes CSS et des exemples de personnalisation.

Le composant couvre notamment la recherche, les tons de peau, les émojis personnalisés et plusieurs langues. Son mode « réactions » affiche d’abord une sélection compacte de réactions populaires, puis donne accès à la bibliothèque complète.

Repéré via React Status

Logo Puck en dégradé bleu-violet sur fond blanc.

Puck, l’éditeur visuel de pages pour React, ajoute dans sa version 0.24 des groupes et des onglets pour organiser les champs, ainsi qu’un champ checkbox pour sélectionner plusieurs options. Des poignées de déplacement facilitent aussi le réagencement de composants dans des mises en page imbriquées.

L’API renderFields permet de composer ces présentations. Côté canvas, InlineTextField rend possible l’édition directe du texte, tandis que fieldTransforms transforme les valeurs au rendu sans modifier les données sous-jacentes.

Fede Bonel TozziRepéré via React Status

React combine <form action>, useActionState et useOptimistic pour gérer les retours d’attente et les mises à jour optimistes tout en conservant un envoi de formulaire avant l’exécution de JavaScript. L’article montre comment cette continuité permet d’enrichir l’interface après hydratation sans abandonner le comportement natif du navigateur.

Le point décisif est de garder l’action serveur directement dans action : une fonction cliente intermédiaire casse la soumission sans JavaScript. Pour l’optimisme, useHydrated() permet de choisir entre l’action serveur et sa version enrichie côté client.

Repéré via React Status

Visuel TanStack Redact indiquant « Your React app. Less JavaScript. » et affichant les logos de TanStack Start, Vite, Vinext et Next.js.

TanStack Redact 0.2.0 remplace React et React DOM dans le navigateur sans modifier le code de l’application. Ses intégrations stables couvrent TanStack Start, Vite, Vinext et Next.js ; dans ces deux derniers frameworks, React reste chargé du rendu serveur tandis que Redact gère l’hydratation et le rendu client.

Les mesures fournies par TanStack montrent des réductions de bundle allant de 20,4 % à 70,5 % sur leurs applications de référence, mais ces gains varient selon le projet. Le compromis est concret : Redact rend de façon synchrone, sans time slicing ni rendu interruptible de React. Un rendu lourd peut donc retarder les interactions ; la compatibilité et les écrans les plus chargés méritent d’être vérifiés dans chaque application.

Tanner LinsleyRepéré via This week in React

Aperçu GitHub du dépôt shader-effects-inc/shaders, présenté comme une bibliothèque de composants WebGPU pour React, Vue, Svelte, Solid, JavaScript et Framer.

L’expérience de projection React pilotée par l’IA de Tanner Linsley est devenue un projet TanStack utilisé en production. Redact propose un runtime plus léger, compatible avec React et déjà fonctionnel avec Start, Next.js, Vinext et Vite. Côté serveur, React continue de gérer le SSR et les Server Components.

Le compromis se situe dans le rendu : Redact travaille de façon synchrone, sans le time slicing de React. Comme le reconnaît le billet, un rendu lourd peut encore retarder les interactions. Le gain de légèreté s’accompagne donc d’une limite à prendre en compte pour les interfaces exigeantes en réactivité.

Shader Effects, Inc.Repéré via This week in React

Visuel MicroKit UI sur fond noir, avec le texte « Microinteractions worth copying » et des carrés concentriques orange.

MicroKit rassemble des interactions prêtes à copier — boutons animés, onglets, champs et effets au survol — avec des versions React ou CSS et Tailwind. Chaque composant se récupère séparément en JavaScript ou TypeScript, sans installer de package ; 26 des 54 n’ont aucune dépendance, tandis que 28 utilisent lucide-react.

Le code est sous licence MIT et les variantes Tailwind sont prévues pour les versions 3 et 4. Côté Next.js App Router, la plupart des composants restent compatibles avec les server components ; ceux qui utilisent état, ref ou gestionnaire d’événement nécessitent « use client ».

Henrique BaroneRepéré via Frontend Focus

Bannière blanche avec le texte noir « Next Themes » et les icônes GitHub et de sponsor.

next-themes applique le thème dès le chargement, prend en compte la préférence système et synchronise le choix entre les onglets. Son ThemeProvider fonctionne avec l’App Router comme avec pages/, et expose un hook pour changer de thème ou gérer plusieurs variantes.

Le point à intégrer dans l’architecture : le thème stocké dans le navigateur est inconnu au rendu serveur. L’interface qui dépend de useTheme doit donc attendre le montage côté client pour éviter les erreurs d’hydratation. La bibliothèque met aussi à jour l’attribut de <html> — avec suppressHydrationWarning recommandé — et reste indépendante de la solution CSS utilisée.

Schéma reliant les valeurs d’état d’une application — facturation, rôle, offre et journaux en direct — aux éléments d’un tableau de bord.

Quand un agent modifie une interface, vérifier un seul compte ne suffit pas à couvrir les rôles, les offres ou les options activées. Matt Rothenberg montre comment les valeurs dispersées dans les hooks, providers et layouts peuvent masquer des états oubliés — comme un bouton Delete visible pour un utilisateur en lecture seule.

En faisant de l’état d’affichage une entrée explicite des composants, les équipes peuvent rendre directement les combinaisons pertinentes, les tester ou les comparer dans une grille. Storybook et Playwright complètent cette démarche, mais ne choisissent pas les scénarios à couvrir : cette décision reste essentielle.

Matt Rothenberg

Bannière React Bits sur fond violet, avec le texte « React Components That Stand Out » et « 200+ Free Creative Components ».

React Bits 2.0 annonce 216 composants animés : 104 ont été reconstruits ou repensés, et plus de 20 ont supprimé des dépendances supplémentaires. Les démos ajoutent presets et interactions au clic, tandis que Background Studio, Shape Magic et Texture Lab ont été reconstruits pour ajuster des effets en direct et exporter leurs résultats.

La mise à jour refond aussi la documentation et la page d’accueil, qui utiliserait environ cinq fois moins de JavaScript. Le catalogue facilite le prototypage d’interfaces expressives ; la variété des animations invite toutefois à évaluer leur coût et leurs dépendances avant de les intégrer à un produit.

David HazRepéré via JavaScript Weekly

Avis GitHub sur une exécution de code à distance critique dans React Server Components, avec le logo React et les paquets npm concernés.

Une faille critique permet l’exécution de code à distance sans authentification dans certaines applications utilisant React Server Components. Elle concerne react-server-dom-webpack, react-server-dom-parcel et react-server-dom-turbopack dans les versions indiquées par l’avis, avec un score CVSS de 9,5.

Le scénario décrit reste rare : il nécessite des réponses transportant plusieurs tableaux typés et une valeur contrôlée par l’attaquant. Les applications React sans serveur ne sont pas concernées, pas plus que celles qui n’utilisent pas de framework, bundler ou plugin prenant en charge les Server Components. Les correctifs sont disponibles en 19.0.9, 19.1.10, 19.2.9 et 19.3.1 ; les déploiements concernés doivent être mis à jour immédiatement.

mattcarrollcodeRepéré via JavaScript Weekly

Illustration d’en-tête pour l’article sur la structure des dossiers React sur le site de Robin Wieruch

Ce panorama détaille les étapes d’organisation d’un projet React, du simple fichier à la structure modulaire d’un monorepo. L’auteur expose les choix de découpage (fichiers, dossiers techniques, dossiers de fonctionnalités, domaines, packages) et leurs impacts sur la maintenabilité, l’isolation des dépendances et la scalabilité. Les exemples concrets montrent comment faire évoluer l’architecture selon la taille du projet, en soulignant les règles pour éviter les dépendances croisées et favoriser la réutilisation.

Robin Wieruch

Illustration du composant Sheet et nouveautés de la release React Aria v1.22.0

La version 1.22.0 de React Aria introduit le composant Sheet, une surcouche glissable qui s’appuie sur les gestes natifs de scroll pour offrir des transitions fluides et tactiles, idéales pour les panneaux mobiles ou les notifications. Cette release apporte aussi la prise en charge de Turbopack pour l’optimisation des locales, une meilleure gestion des widgets interactifs comme le clavier virtuel, et plusieurs correctifs sur les collections, ComboBox et formulaires.

Adobe

Affiche de la sortie stable de TanStack Start 1.0

TanStack Start 1.0 officialise un framework full-stack stable, déjà éprouvé en production, qui combine le routage SPA, le rendu serveur, le streaming et des fonctions serveur typées pour React et Solid. L’accent est mis sur la sécurité de typage de bout en bout : les paramètres de routes, les loaders et les fonctions serveur sont tous typés, ce qui facilite la maintenance et l’évolution, même pour les agents IA. Le support de React Server Components est optionnel, et le déploiement s’appuie sur Vite, Nitro ou Rsbuild, sans imposer une architecture unique.

Tanner Linsley

Illustration de l'article TanStack Charts 1.0

TanStack Charts 1.0 propose une approche composable des graphiques, inspirée de la Grammar of Graphics, avec un cœur agnostique et un adaptateur React. L’article détaille comment chaque élément du graphique (ligne, point, barre) devient un composant réutilisable, permettant d’étendre ou de personnaliser facilement les visualisations au fil des besoins. La stabilité de l’API et la granularité des imports facilitent l’intégration dans des applications évolutives sans sacrifier la taille du bundle ni la sécurité de typage.

Tanner Linsley

Illustration de l’article sur l’API browser() de React sur certificates.dev

React Canary introduit l’API browser() pour rendre un composant exclusivement dans le navigateur, sans risque de mismatch à l’hydratation ni effet de montage supplémentaire. L’article montre comment placer use(browser()) dans un composant client, entouré d’une Suspense, pour différer son rendu jusqu’à ce que les APIs du navigateur soient disponibles. Plusieurs exemples concrets illustrent l’intérêt de cette approche pour accéder à localStorage, au DOM ou à des données spécifiques à l’utilisateur, tout en évitant les contournements habituels avec useEffect ou des vérifications de l’environnement.

Aurora Scharff

Open-source React blocks for building admin apps

Sh​​adcn Admin Kit fournit des blocs open source pour créer des outils internes, tableaux de bord et applications B2B en React. Il préconfigure notamment tables de données, formulaires, authentification, recherche et internationalisation, avec des capacités avancées comme le CRUD généré, les permissions, les actions groupées et l’annulation.