React sans JSX
These docs are old and wonât be updated. Go to react.dev for the new React docs.
Vous nâĂȘtes pas obligé·e dâemployer JSX pour utiliser React. React sans JSX vous dispense de configurer votre environnement de travail pour gĂ©rer la compilation de votre code.
Chaque Ă©lĂ©ment JSX nâest rien de plus que du sucre syntaxique pour React.createElement(component, props, ...children)
. Par consĂ©quent, tout ce que vous pouvez faire avec JSX peut aussi ĂȘtre rĂ©alisĂ© en Javascript brut.
Prenons par exemple ce code écrit avec JSX :
class Hello extends React.Component {
render() {
return <div>Bonjour {this.props.toWhat}</div>;
}
}
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Hello toWhat="monde" />);
Il peut ĂȘtre compilĂ© vers ce code qui nâutilise pas JSX :
class Hello extends React.Component {
render() {
return React.createElement('div', null, `Bonjour ${this.props.toWhat}`);
}
}
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(React.createElement(Hello, {toWhat: 'monde'}, null));
Si vous voulez voir plus dâexemples de conversion de code JSX en JavaScript brut, vous pouvez essayer le compilateur Babel en ligne.
Le composant peut ĂȘtre soit une chaĂźne de caractĂšres, soit une sous-classe de React.Component
, soit une fonction simple.
Si vous nâavez pas envie de taper React.createElement
à chaque fois, vous pouvez à la place créer un raccourci :
const e = React.createElement;
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(e('div', null, 'Bonjour, monde'));
Si vous utilisez un tel raccourci pour React.createElement
, utiliser React sans JSX devient presque aussi pratique.
Dans le mĂȘme esprit, vous pouvez aller regarder des projets tels que react-hyperscript
ou hyperscript-helpers
, qui proposent une syntaxe encore plus concise.