November 19, 2024
Nouvelles fonctionnalités de React 19 à connaître, expliquées à l'aide d'exemples de code
Réagir 19 a été officiellement introduit en avril 2024, apportant une vague de fonctionnalités intéressantes aux applications React. En septembre 2024, il y a 68 719 809 sites web utilisant React pour leurs frameworks frontaux, les États-Unis représentant à eux seuls 2 973 984 d'entre eux.
Cette nouvelle version de l'enfant de 11 ans JavaScript libraries est conçu pour simplifier le développement, améliorer les performances et améliorer l'expérience utilisateur pour cette vaste base d'utilisateurs.
Dans cet article, Dirox explorera Les fonctionnalités remarquables de React 19, avec des exemples de code pour illustrer comment ils peuvent améliorer votre processus de développement et les performances de vos applications.
1. Principales caractéristiques de React 19
1.1. Compilateur React
Le nouveau compilateur de React 19 est son principal attrait. En convertissant votre code React en JavaScript simple, ce compilateur améliore les performances et, surtout, vous évite d'avoir à ajuster manuellement les performances en continu. Cela permet aux développeurs de gagner beaucoup de temps et de réduire le besoin de réglages manuels.
Exemple de code :
//Pas besoin de UseCallback/UseMemo
fonction Component () {
retour <div>optimisé !</div> ;
}
Bien que le compilateur automatise l'optimisation, des ajustements manuels peuvent toujours être nécessaires pour les applications hautes performances, en particulier lors de la gestion de dépendances de données complexes.
1.2. Composants du serveur
Composants du serveur dans React 19 révolutionnent le rendu en permettant le traitement côté serveur pour des expériences utilisateur plus rapides et plus efficaces. Les principaux avantages sont les suivants :
- Temps de chargement initial plus rapides : Réduit le code JavaScript côté client et lance la récupération des données sur le serveur pour accélérer le chargement des pages.
- Portabilité du code améliorée : Permet une logique partagée entre le serveur et le client, réduisant ainsi la duplication et améliorant la maintenabilité.
- SEO amélioré : Fournit du HTML pré-rendu pour améliorer l'exploration et l'indexation des moteurs de recherche.
Exemple de code :
//Utilisateurs.Server.jsx
//Composant serveur : récupère les données et renvoie JSX
exporter la fonction asynchrone par défaut Users () {
const res = await fetch (» https://api.example.com/users «) ;
const users = await res.json () ;
retour (
<div>
<h1>Les utilisateurs</h1>
{users.map ((utilisateur) => (
<div key= {user.id} >
<h2>{nom d'utilisateur}</h2>
<p>{utilisateur.rôle}</p>
</div>
))}
</div>
) ;
}
Les composants du serveur dans React 19 fournissent un juste milieu entre génération de sites statiques (SSG) et rendu complet côté client.
Comparés à des techniques plus anciennes telles que SSG, les composants de serveur rationalisent la diffusion de contenu en permettant aux développeurs de spécifier quelles parties d'une application doivent être affichées côté serveur ou côté client.
1.3. Nouveau utiliser ()
Crochet
Le nouveau utiliser ()
hook simplifie la gestion asynchrone des données en combinant les fonctionnalités de useEffect, useState et useContext. Cela peut considérablement faciliter la gestion des dépendances des données et des états complexes.
Exemple de code :
importer React, {use} depuis 'react' ;
//Fonction pour récupérer les données
fonction asynchrone fetchData () {
réponse const = await fetch ('https://api.example.com/data') ;
si (! réponse.ok) {
lancer une nouvelle erreur (« Impossible de récupérer les données ») ;
}
return response.json () ;
}
const DataFetchingComponent = () => {
//`use () `suspend le composant jusqu'à ce que la promesse soit résolue
const data = use (fetchData ()) ;
retour (
<div>
<h1>Données :</h1>
<pre>{JSON.stringify (données, null, 2)}</pre>
</div>
) ;
} ;
exporter le composant DataFetchingComponent par défaut ;
Ici, utiliser ()
interrompt le rendu jusqu'à ce qu'une promesse soit résolue, déclenchant une limite de suspension en cas d'erreur. Aucun UseEffect n'était nécessaire car React gère automatiquement la récupération des données, supprimant ainsi le besoin d'effets secondaires manuels. De plus, les limites de suspension simplifient la gestion des erreurs et de l'état de chargement, éliminant ainsi le suivi manuel.
utiliser ()
est particulièrement utile pour les opérations asynchrones dépendantes du contexte, où plusieurs hooks étaient auparavant nécessaires pour gérer les états de chargement et la cohérence des données.
1,4. Actions et actions du serveur
React 19 présente Actions pour gérer les soumissions de formulaires, les opérations asynchrones et la gestion des états. Les actions rationalisent la gestion des formulaires et améliorent l'intégration avec les fonctionnalités simultanées de React :
- Gestion simplifiée des événements : Remplacez les gestionnaires traditionnels tels que OnSubmit en transmettant FormData directement aux fonctions d'action, éliminant ainsi l'analyse manuelle.
- Actions du serveur : Autorisez les composants clients à appeler directement des fonctions côté serveur, simplifiant ainsi des tâches telles que les requêtes de base de données ou l'accès au système de fichiers sans API personnalisées.
Exemple de code :
action de fonction asynchrone (FormData) {
return await HandleSubmit (FormData) ;
}
En résumé, les actions simplifient le code, en particulier dans les applications à haute concurrence, en gérant la logique asynchrone de manière centralisée, en fonction des besoins du serveur et du client.
2. Fonctionnalités avancées pour un développement rationalisé
2.1. Manipulation des références en tant qu'accessoires
React 19 permet de transmettre les références directement en tant qu'accessoires sans avoir besoin de ForwardRef, ce qui simplifie la composition des composants.
Exemple de code :
function Child ({innerRef}) {
retour <input ref= {innerRef} /> ;
}
Bien que cette approche simplifie l'utilisation des références, leur transmission en tant qu'accessoires peut entraîner des effets secondaires dans les applications complexes. Les développeurs doivent donc faire preuve de prudence dans les projets de grande envergure.
2.2. Interface utilisateur optimiste avec UseOptimistic
Le hook useOptimistic simplifie les mises à jour optimistes de l'interface utilisateur lors de mutations de données asynchrones :
- Feedback instantané: affichez immédiatement un état optimiste, en montrant aux utilisateurs le résultat attendu sans délai.
- Rétablissement automatique de l'état: React revient à l'état d'origine en cas d'échec de la mise à jour, préservant ainsi la cohérence des données.
- UX améliorée: les commentaires immédiats rendent l'application plus réactive et plus attrayante.
Exemple de code :
const [OptimisticState, setOptimistic] = useOptimistic (InitialState) ;
Ces mises à jour optimistes de l'interface utilisateur sont idéales pour les applications en temps réel, car elles peuvent améliorer de manière significative l'expérience utilisateur en réduisant la latence perçue.
2.3. Nouveaux crochets pour la gestion des formulaires
React 19 introduit UseFormStatus et UseFormState pour rationaliser la gestion des formulaires, réduire les passe-partout et simplifier le suivi des états :
- Accéder au statut du formulaire pour les parents: fonctionne comme un fournisseur de contexte, permettant un accès facile à l'état du formulaire.
- Moins de perçage à l'hélice: élimine le besoin de transmettre l'état du formulaire à plusieurs accessoires, rationalisant ainsi la gestion des composants.
- Simplifie les systèmes de conception: réduit le nombre de composants qui interagissent avec l'état du formulaire, en se concentrant sur les cas d'utilisation courants.
Exemple de code :
const {pending} = useFormStatus () ;
<button disabled= {pending} >Retour/Soumettre ;</button>
Ces hooks fonctionnent parfaitement avec les bibliothèques externes et les systèmes de validation complexes, ce qui rend la gestion des formulaires dans React plus robuste.
2,4. Chargement des actifs amélioré
React 19 inclut le préchargement de nouveaux actifs API, tels que PrefetchDNS et preload, qui améliorent les temps de chargement des ressources.
Ces API peuvent être optimisées avec HTTP/2 et les CDN, ce qui améliore considérablement les performances des applications React distribuées dans le monde entier.
3. Des fonctionnalités de pointe pour des applications pérennes
3.1. Intégration de composants Web
React 19 simplifie l'intégration de Composantes Web, en comblant le fossé entre les frameworks et en favorisant le développement modulaire.
- Pourquoi c'est important: Les composants Web permettent aux développeurs de créer des composants encapsulés réutilisables qui fonctionnent parfaitement dans différents frameworks et bibliothèques. La prise en charge améliorée de React 19 garantit une interopérabilité fluide, ce qui facilite l'inclusion des composants Web existants dans les applications React modernes.
- Transformation des systèmes existants: En intégrant des composants Web, les entreprises peuvent moderniser leurs anciennes applications sans avoir à réécrire de gros morceaux de code, ce qui constitue une solution rentable pour la transformation numérique.
- Compatibilité entre les frameworks: Les développeurs peuvent désormais créer des bibliothèques qui fonctionnent de manière cohérente dans différents environnements, renforçant ainsi la collaboration et la réutilisation du code.
3.2. Directives : utiliser le client et utiliser le serveur
React 19 introduit les directives use client et use server, permettant de distinguer clairement le code côté client du code côté serveur.
- Interactions serveur-client rationalisées: Ces directives permettent de mieux contrôler la mise en cache et les opérations asynchrones, améliorant ainsi les performances et l'expérience utilisateur.
- Gérer les transitions: Dans les applications à grande échelle, l'équilibrage du code client et du code serveur devient crucial. Les nouvelles directives aident les développeurs à gérer efficacement les transitions, réduisant ainsi le risque d'erreurs et de problèmes de performances.
- Pièges potentiels: Bien que ces outils améliorent la flexibilité, les développeurs doivent gérer avec soin les dépendances entre les composants du client et du serveur afin d'éviter toute complexité inutile.
Exemple de code :
« utiliser le client » ;
fonction ClientComponent () {
retourner <div>le côté client</div> ;
}
4. Améliorations supplémentaires des performances
4.1. Hydratation et signalement des erreurs
React 19 apporte des améliorations significatives en termes d'hydratation et de gestion des erreurs, rationalisant ainsi le processus de débogage pour les problèmes de rendu serveur-client.
- Hydratation plus intelligente: Des mécanismes améliorés corrige les incohérences d'hydratation courantes, garantissant ainsi une expérience utilisateur plus fluide, en particulier dans les applications dynamiques ou interactives.
- Meilleur message d'erreur: Les nouveaux outils de signalement des erreurs fournissent plus de contexte et des informations exploitables, aidant les développeurs à diagnostiquer et à résoudre rapidement les problèmes liés à des projets complexes.
4,2. SEO et gestion des métadonnées
React 19 simplifie la gestion des métadonnées des documents telles que les titres, les descriptions et les balises méta grâce à la prise en charge intégrée de Métadonnées du document, ce qui rend l'optimisation du référencement plus facile et plus efficace.
- Métadonnées déclaratives avec DocumentHead: Le nouveau composant DocumentHead permet aux développeurs de définir des métadonnées directement dans leurs composants, améliorant ainsi l'organisation et la lisibilité du code.
- Gestion centralisée du référencement: gérez tous les éléments pertinents pour le référencement, tels que les titres et les descriptions, en un seul endroit, en rationalisant les mises à jour et en réduisant la complexité.
- Moins de Boilerplate: Finies les manipulations manuelles de chaînes ou les solutions de contournement complexes : DocumentHead permet une gestion des métadonnées concise, claire et efficace.
Cette fonctionnalité permet non seulement de gagner du temps, mais garantit également que les applications React sont plus conviviales pour le référencement dès le départ.
Conclusion
React 19 représente une avancée dans le développement Web moderne en fournissant aux développeurs les outils nécessaires pour créer des applications robustes et évolutives. Ces nouvelles fonctionnalités ne sont pas simplement des améliorations, elles ouvrent la voie à la prochaine ère de Développement de React, en mettant l'accent sur la flexibilité, l'interopérabilité et les performances.