Date de sortie : 20 octobre 2020
Documentation officielle : https://react.dev/blog/2020/10/20/react-v17
Une release sans nouvelles features ?
Pas de hooks révolutionnaires, pas de nouvelles API à apprendre. React 17 est unique en son genre : c’est la première release majeure qui ne vous donne… rien de nouveau à utiliser. Et c’est exactement son but : faciliter les mises à jour progressives.
Mises à jour progressives
Fini le “tout ou rien”. Avant, migrer React dans une grosse app relevait parfois du cauchemar logistique. Avec React 17, vous pouvez désormais faire cohabiter plusieurs versions sur une même page :
// App principale en React 17
import { render } from 'react-dom';
// Widget legacy en React 16
import { LegacyWidget } from './legacy';
function App() {
return (
<div>
<ModernComponent />
<LegacyWidget /> {/* Peut utiliser React 16 */}
</div>
);
}
Un vrai soulagement pour les équipes qui gèrent des applications massives où la migration “big bang” n’est pas une option.
Changements internes
Event delegation
Changement subtil mais crucial : les événements ne sont plus attachés à document, mais au root de votre application :
// Avant React 17
document.addEventListener('click', ...);
// Après React 17
rootNode.addEventListener('click', ...);
Résultat ? Plusieurs applications React peuvent désormais cohabiter sur la même page sans se marcher sur les pieds.
Nouveau JSX Transform
Bonne nouvelle pour la lisibilité du code : l’import de React devient optionnel quand vous utilisez JSX :
// Avant
import React from 'react';
function App() {
return <div>Hello</div>;
}
// Après (React 17+)
function App() {
return <div>Hello</div>;
}
// Le compilateur ajoute automatiquement l'import nécessaire
Cleanup des effets
Le nettoyage des useEffect passe en mode asynchrone. Résultat : des perfs améliorées sans rien changer à votre code.
Fin du event pooling
React abandonne le synthetic event pooling. Si vous utilisiez event.persist() dans vos handlers, vous pouvez désormais l’oublier.
Pourquoi cette release compte
React 17 joue les tremplins (“stepping stone”) :
- Elle débloque les mises à jour incrémentales pour les grosses apps
- Elle pose les fondations pour React 18 et le concurrent mode
- Elle nettoie des incohérences qui traînaient
Pas de features tape-à-l’œil, certes. Mais une mise à jour stratégique qui vaut le coup d’être adoptée.
Échanger avec un expert React
Nous revenons vers vous sous 24h.
Chez Makersquad, nous accompagnons nos clients dans la conception et l’évolution d’applications modernes avec React. Que vous souhaitiez lancer une nouvelle interface, faire évoluer une application existante ou préparer une migration vers les dernières versions, notre équipe vous aide à construire des front-ends robustes, performants et évolutifs.