JSX (JavaScript XML) est une extension de syntaxe pour JavaScript qui permet aux développeurs d'écrire du code de type HTML directement dans des fichiers JavaScript. Il s'agit de l'une des fonctionnalités principales de React, qui améliore l'expérience de développement en permettant de décrire de manière claire et concise la structure des interfaces utilisateur (UI).
Voici tout ce que vous devez savoir sur JSX :
JSX vous permet d'écrire des balises de type XML qui représentent des éléments HTML ou des composants React dans JavaScript. Bien que JSX ressemble à du HTML, ce n'est pas le cas : sous le capot, JSX est compilé en JavaScript standard à l'aide d'outils comme Babel.
const Greeting = () => { return <h1>Hello, World!</h1>; };
const Greeting = () => { return React.createElement('h1', null, 'Hello, World!'); };
Vous pouvez intégrer des expressions JavaScript dans JSX en les enveloppant entre accolades {}.
const name = "Alice"; const Greeting = () => <h1>Hello, {name}!</h1>;
JSX prend en charge des attributs similaires au HTML mais avec la dénomination camelCase pour les propriétés.
const Button = () => <button className="btn" onClick={() => alert('Clicked!')}>Click Me</button>;
Vous pouvez imbriquer des éléments les uns dans les autres pour créer une structure d'interface utilisateur complète.
const App = () => ( <div> <h1>Welcome</h1> <p>This is a nested JSX structure.</p> </div> );
Utilisez la logique JavaScript pour rendre les éléments de manière conditionnelle.
const isLoggedIn = true; const App = () => ( <div> {isLoggedIn ? <h1>Welcome Back!</h1> : <h1>Please Log In</h1>} </div> );
JSX fournit un moyen déclaratif de définir l'interface utilisateur, rendant le code plus lisible et plus proche de la conception réelle de l'interface utilisateur.
Étant donné que JSX n'est qu'un sucre syntaxique pour les fonctions JavaScript, il permet une intégration transparente de la logique, de l'état et des accessoires dans les définitions de votre interface utilisateur.
JSX rend le code de l'interface utilisateur plus facile à écrire, à comprendre et à déboguer par rapport aux appels React.createElement() traditionnels.
JSX doit renvoyer un seul élément racine. Utilisez un
const Greeting = () => { return <h1>Hello, World!</h1>; };
Pour les éléments sans enfants, utilisez des balises à fermeture automatique.
const Greeting = () => { return React.createElement('h1', null, 'Hello, World!'); };
Bien que JSX prenne en charge le style en ligne via l'attribut style, utilisez les bibliothèques CSS-in-JS ou des feuilles de style externes pour une meilleure maintenabilité.
const name = "Alice"; const Greeting = () => <h1>Hello, {name}!</h1>;
JSX échappe automatiquement aux entrées dangereuses pour empêcher les attaques XSS. Par exemple :