Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Grâce à React, il est facile de créer des interfaces utilisateurs Créez des composants autonom
interactives. Définissez des vues simples pour chaque état de état, puis assemblez-les pour cr
votre application, et lorsque vos données changeront, React complexes.
mettra à jour, de façon optimale, juste les composants qui en
auront besoin. Dans la mesure où les composa
que sous la forme de gabarits, v
Des vues déclaratives rendent votre code plus prévisible et plus données complexes dans vos ap
facile à déboguer. DOM.
Un composant simple
Les composants React implémentent une méthode render() qui prend des
JSX n’est pas obligatoire pour utiliser React. Essayez la REPL Babel pour
examiner le code JavaScript brut produit par la phase de compilation du format
JSX.
ReactDOM.render(
<HelloMessage name="Thierry" />,
document.getElementById('hello-example')
);
Résultat
Salut Thierry
Un composant à état
tick() {
this.setState(state => ({
seconds: state.seconds + 1
}));
}
componentDidMount() {
this.interval = setInterval(() => this.tick(), 1000);
}
componentWillUnmount() {
clearInterval(this.interval);
}
render() {
return (
<div>
Secondes : {this.state.seconds}
</div>
);
}
}
ReactDOM.render(
<Timer />,
document.getElementById('timer-example')
);
Résultat
Secondes : 94
Une application
render() {
return (
<div>
<h3>À faire</h3>
<TodoList items={this.state.items} />
<form onSubmit={this.handleSubmit}>
<label htmlFor="new-todo">
Que faut-il faire ?
</label>
<input
id="new-todo"
onChange={this.handleChange}
value={this.state.text}
/>
<button>
Ajouter #{this.state.items.length + 1}
</button>
</form>
</div>
);
}
handleChange(e) {
this.setState({ text: e.target.value });
}
handleSubmit(e) {
e.preventDefault();
if (this.state.text.length === 0) {
return;
}
const newItem = {
text: this.state.text,
text: ''
}));
}
}
ReactDOM.render(
<TodoApp />,
document.getElementById('todos-example')
);
Résultat
À faire
Un composant avec
des plugins tiers
React est flexible et fournit divers moyens de l’intégrer avec d’autres bibliothèques
ou frameworks. Cet exemple utilise remarkable, une bibliothèque tierce pour
gérer le format Markdown, afin de convertir le contenu de la balise <textarea>
en temps réel.
class MarkdownEditor extends React.Component {
constructor(props) {
super(props);
this.md = new Remarkable();
this.handleChange = this.handleChange.bind(this);
this.state = { value: 'Bonjour, **monde** !' };
}
handleChange(e) {
this.setState({ value: e.target.value });
}
getRawMarkup() {
return { __html: this.md.render(this.state.value) };
}
render() {
return (
<div className="MarkdownEditor">
<h3>Entrée</h3>
<label htmlFor="markdown-content">
Saisissez du markdown
</label>
<textarea
id="markdown-content"
onChange={this.handleChange}
defaultValue={this.state.value}
/>
<h3>Sortie</h3>
<div
className="content"
dangerouslySetInnerHTML={this.getRawMarkup()}
/>
</div>
);
}
}
ReactDOM.render(
<MarkdownEditor />,
document.getElementById('markdown-example')
);
Entrée
Bonjour, **monde** !
Saisissez du markdown
Sortie
Bonjour, monde !
Cliquez sur le lien ci-dessus pour ouvrir un éditeur 12. Penser en React
HOOKS
TESTS
Comment lire ce guide
MODE CONCURRENT (EXPÉRIMENT
Dans ce guide, nous examinerons les blocs qui
constituent une application React : les éléments et CONTRIBUER
les composants. Une fois que vous les aurez
maîtrisés, vous pourrez créer des applications FAQ
complexes à partir de petits blocs réutilisables.
Le plus petit exemple de React ressemble à ceci :
INSTALLATION
ReactDOM.render(
<h1>Bonjour, monde !</h1>,
FONDAMENTAUX
document.getElementById('root')
);
1. Bonjour, monde !
2. Introduction à JSX
Il affiche un titre qui dit « Bonjour, monde ! » sur la 3. Le rendu des éléments
page. 4. Composants et props
5. État et cycle de vie
Essayer sur CodePen
6. Gérer les événements
7. Affichage conditionnel
Cliquez sur le lien ci-dessus pour ouvrir un éditeur
en ligne. Vous êtes libres de faire quelques 8. Listes et clés
GUIDES AVANCÉS
Astuce CONTRIBUER
Ce guide est destiné aux personnes qui préfèrent
apprendre étape par étape. Si vous préférez FAQ
apprendre par la pratique, allez voir notre
tutoriel. Vous trouverez peut-être que les deux
Ceci est le premier chapitre d’un guide étape par
étape à propos des concepts principaux de React.
INSTALLATION
Vous pouvez trouver une liste des chapitres dans la
barre latérale de navigation. Si vous lisez ceci depuis
FONDAMENTAUX
un appareil mobile, vous pouvez accéder à la
navigation en appuyant sur le bouton situé dans le 1. Bonjour, monde !
coin en bas à droite de votre écran. 2. Introduction à JSX
3. Le rendu des éléments
Chacun des chapitres de ce guide s’appuie sur les
4. Composants et props
connaissances introduites dans les chapitres
5. État et cycle de vie
précédents. Vous pouvez apprendre l’essentiel de
6. Gérer les événements
React en lisant les chapitres du guide
7. Affichage conditionnel
« Fondamentaux » dans l’ordre où ils
apparaissent dans la barre latérale. Par exemple, 8. Listes et clés
FAQ
Remarque
Ce guide utilise occasionnellement quelques
JavaScript ces dernières années, ces trois points
devraient vous aider.
INSTALLATION
FONDAMENTAUX
1. Bonjour, monde !
2. Introduction à JSX
Commençons ! 3. Le rendu des éléments
4. Composants et props
Continuez à défiler pour atteindre le lien vers le
5. État et cycle de vie
prochain chapitre de ce guide juste avant le pied de
page. 6. Gérer les événements
7. Affichage conditionnel
8. Listes et clés
9. Formulaires
Avez-vous trouvé cette page utile ? 10. Faire remonter l'état
GUIDES AVANCÉS
RÉFÉRENCE DE L'API
HOOKS
Article précédent Prochain article
CONTRIBUER
FAQ
INSTALLATION
ressembler l’interface utilisateur (UI). JSX vous fait 11. Composition ou héritage ?
INSTALLATION
const element = <h1>Bonjour, monde !</h1>;
FONDAMENTAUX
RÉFÉRENCE DE L'API
Pourquoi JSX ?
HOOKS
Le fonctionnement d’une UI conditionnera toujours
les logiques de rendu, de la gestion des événements
TESTS
à la préparation des données pour l’affichage, en
passant par l’évolution de l’état au fil du temps.
MODE CONCURRENT (EXPÉRIMENT
React a choisi d’assumer pleinement cet état de fait.
CONTRIBUER
Au lieu de séparer artificiellement les technologies
en mettant le balisage et la logique dans des
FAQ
fichiers séparés, React sépare les préoccupations via
des unités faiblement couplées appelées
JS vous met mal à l’aise, cette présentation vous
fera peut-être changer d’avis.
INSTALLATION
const user = {
FONDAMENTAUX
firstName: 'Kylian',
lastName: 'Mbappé'
1. Bonjour, monde !
};
2. Introduction à JSX
const element = (
3. Le rendu des éléments
<h1>
Bonjour, {formatName(user)} ! 4. Composants et props
</h1> 5. État et cycle de vie
);
6. Gérer les événements
ReactDOM.render( 7. Affichage conditionnel
element,
document.getElementById('root') 8. Listes et clés
); 9. Formulaires
10. Faire remonter l'état
TESTS
Vous pouvez aussi utiliser des accolades pour 12. Penser en React
HOOKS
FAQ
Attention :
Dans la mesure où JSX est plus proche de
nommage des propriétés, au lieu des noms
d’attributs HTML.
INSTALLATION
Par exemple, class devient className en JSX,
et tabindex devient tabIndex . FONDAMENTAUX
1. Bonjour, monde !
2. Introduction à JSX
3. Le rendu des éléments
Spécifier des éléments enfants en JSX 4. Composants et props
5. État et cycle de vie
Si une balise est vide, vous pouvez la fermer
immédiatement avec /> , comme en XML : 6. Gérer les événements
7. Affichage conditionnel
8. Listes et clés
const element = <img src={user.avatarUrl} />;
9. Formulaires
10. Faire remonter l'état
Les balises JSX peuvent contenir des enfants :
11. Composition ou héritage ?
12. Penser en React
const element = (
<div>
GUIDES AVANCÉS
<h1>Bonjour !</h1>
<h2>Content de te voir ici.</h2>
</div> RÉFÉRENCE DE L'API
);
HOOKS
TESTS
JSX empêche les attaques d’injection
MODE CONCURRENT (EXPÉRIMENT
Vous ne risquez rien en utilisant une saisie
utilisateur dans JSX : CONTRIBUER
RÉFÉRENCE DE L'API
RÉFÉRENCE DE L'API
HOOKS
Avez-vous trouvé cette page utile ?
CONTRIBUER
FAQ
Bonjour, monde !
Le rendu des
éléments
INSTALLATION
FONDAMENTAUX
1. Bonjour, monde !
2. Introduction à JSX
3. Le rendu des éléments
4. Composants et props
5. État et cycle de vie
6. Gérer les événements
7. Affichage conditionnel
8. Listes et clés
9. Formulaires
10. Faire remonter l'état
11. Composition ou héritage ?
12. Penser en React
GUIDES AVANCÉS
RÉFÉRENCE DE L'API
HOOKS
TESTS
CONTRIBUER
FAQ
INSTALLATION
Composants et
props
FONDAMENTAUX
1. Bonjour, monde !
2. Introduction à JSX
Les composants vous permettent de découper 3. Le rendu des éléments
l’interface utilisateur en éléments indépendants 4. Composants et props
et réutilisables, vous permettant ainsi de 5. État et cycle de vie
considérer chaque élément de manière isolée. 6. Gérer les événements
Cette page fournit une introduction au concept 7. Affichage conditionnel
de composants. Vous trouverez une référence 8. Listes et clés
détaillée de l’API des composants ici. 9. Formulaires
10. Faire remonter l'état
Conceptuellement, les composants sont comme des 11. Composition ou héritage ?
fonctions JavaScript. Ils acceptent des entrées 12. Penser en React
quelconques (appelées « props ») et renvoient des
éléments React décrivant ce qui doit apparaître à GUIDES AVANCÉS
l’écran.
RÉFÉRENCE DE L'API
HOOKS
function Welcome(props) {
FAQ
return <h1>Bonjour, {props.name}</h1>;
}
Les composants vous permettent de découper
l’interface utilisateur en éléments indépendants
INSTALLATION
et réutilisables, vous permettant ainsi de
considérer chaque élément de manière isolée. FONDAMENTAUX
Cette page fournit une introduction au concept
1. Bonjour, monde !
de composants. Vous trouverez une référence
2. Introduction à JSX
détaillée de l’API des composants ici.
3. Le rendu des éléments
4. Composants et props
Conceptuellement, les composants sont comme des
5. État et cycle de vie
fonctions JavaScript. Ils acceptent des entrées
quelconques (appelées « props ») et renvoient des 6. Gérer les événements
1. Bonjour, monde !
Les deux composants ci-dessus sont équivalents du
2. Introduction à JSX
point de vue de React.
3. Le rendu des éléments
4. Composants et props
Les composants (aussi bien fonctions que classes)
possèdent quelques fonctionnalités 5. État et cycle de vie
HOOKS
Mais ces éléments peuvent également représenter
des composants définis par l’utilisateur : TESTS
CONTRIBUER
Lorsque React rencontre un élément représentant
un composant défini par l’utilisateur, il transmet les FAQ
attributs JSX et les enfants à ce composant sous la
forme d’un objet unique. Nous appelons cet objet
Par exemple, ce code affiche « Bonjour, Sara » sur la
page :
INSTALLATION
function Welcome(props) {
FONDAMENTAUX
return <h1>Bonjour, {props.name}</h1>;
}
1. Bonjour, monde !
const element = <Welcome name="Sara" />; 2. Introduction à JSX
ReactDOM.render(
3. Le rendu des éléments
element,
document.getElementById('root') 4. Composants et props
);
5. État et cycle de vie
6. Gérer les événements
Essayer sur CodePen 7. Affichage conditionnel
8. Listes et clés
Récapitulons ce qui se passe dans cet exemple : 9. Formulaires
10. Faire remonter l'état
1. On appelle ReactDOM.render() avec l’élément
<Welcome name="Sara" /> .
11. Composition ou héritage ?
12. Penser en React
2. React appelle le composant Welcome avec
comme props {name: 'Sara'} .
GUIDES AVANCÉS
3. Notre composant Welcome retourne un élément
<h1>Bonjour, Sara</h1> pour résultat. RÉFÉRENCE DE L'API
TESTS
Remarque
React considère les composants commençant par MODE CONCURRENT (EXPÉRIMENT
FONDAMENTAUX
1. Bonjour, monde !
2. Introduction à JSX
3. Le rendu des éléments
Composition de composants
4. Composants et props
5. État et cycle de vie
Les composants peuvent faire référence à d’autres
composants dans leur sortie. Ça nous permet 6. Gérer les événements
function App() {
return ( TESTS
<div>
<Welcome name="Sara" />
MODE CONCURRENT (EXPÉRIMENT
<Welcome name="Cahal" />
<Welcome name="Edite" />
</div> CONTRIBUER
);
}
FAQ
ReactDOM.render(
<App />,
Essayer sur CodePen
function Comment(props) {
<Avatar user={props.author} />
<div className="UserInfo-name">
{props.author.name}
INSTALLATION
</div>
</div>
<div className="Comment-text"> FONDAMENTAUX
{props.text}
</div> 1. Bonjour, monde !
<div className="Comment-date">
{formatDate(props.date)}
2. Introduction à JSX
</div> 3. Le rendu des éléments
</div>
4. Composants et props
);
} 5. État et cycle de vie
6. Gérer les événements
l’utilisateur : 9. Formulaires
10. Faire remonter l'état
function UserInfo(props) {
11. Composition ou héritage ?
return ( 12. Penser en React
<div className="UserInfo">
<Avatar user={props.user} />
GUIDES AVANCÉS
<div className="UserInfo-name">
{props.user.name}
</div> RÉFÉRENCE DE L'API
</div>
);
HOOKS
}
TESTS
Ce qui nous permet de simplifier encore davantage
Comment : MODE CONCURRENT (EXPÉRIMENT
CONTRIBUER
function Comment(props) {
return (
<div className="Comment"> FAQ
<UserInfo user={props.author} />
<div className="Comment-text">
</div>
</div>
);
INSTALLATION
}
FONDAMENTAUX
Essayer sur CodePen
1. Bonjour, monde !
FONDAMENTAUX
React est plutôt flexible mais applique une règle
stricte : 1. Bonjour, monde !
2. Introduction à JSX
Tout composant React doit agir comme une 3. Le rendu des éléments
fonction pure vis-à-vis de ses props. 4. Composants et props
5. État et cycle de vie
Bien entendu, les interfaces utilisateurs des
6. Gérer les événements
applications sont dynamiques et évoluent dans le
7. Affichage conditionnel
temps. Dans la prochaine section, nous
8. Listes et clés
présenterons un nouveau concept « d’état local ».
9. Formulaires
L’état local permet aux composants React de
modifier leur sortie au fil du temps en fonction des 10. Faire remonter l'état
n’importe quoi d’autre, mais sans enfreindre cette 12. Penser en React
règle.
GUIDES AVANCÉS
RÉFÉRENCE DE L'API
CONTRIBUER
FONDAMENTAUX
1. Bonjour, monde !
2. Introduction à JSX
3. Le rendu des éléments
4. Composants et props
5. État et cycle de vie
6. Gérer les événements
7. Affichage conditionnel
8. Listes et clés
9. Formulaires
10. Faire remonter l'état
11. Composition ou héritage ?
12. Penser en React
GUIDES AVANCÉS
RÉFÉRENCE DE L'API
HOOKS
TESTS
CONTRIBUER
FAQ
INSTALLATION
Composants et
props
FONDAMENTAUX
1. Bonjour, monde !
2. Introduction à JSX
Les composants vous permettent de découper 3. Le rendu des éléments
l’interface utilisateur en éléments indépendants 4. Composants et props
et réutilisables, vous permettant ainsi de 5. État et cycle de vie
considérer chaque élément de manière isolée. 6. Gérer les événements
Cette page fournit une introduction au concept 7. Affichage conditionnel
de composants. Vous trouverez une référence 8. Listes et clés
détaillée de l’API des composants ici. 9. Formulaires
10. Faire remonter l'état
Conceptuellement, les composants sont comme des 11. Composition ou héritage ?
fonctions JavaScript. Ils acceptent des entrées 12. Penser en React
quelconques (appelées « props ») et renvoient des
éléments React décrivant ce qui doit apparaître à GUIDES AVANCÉS
l’écran.
RÉFÉRENCE DE L'API
HOOKS
function Welcome(props) {
FAQ
return <h1>Bonjour, {props.name}</h1>;
}
Les composants vous permettent de découper
l’interface utilisateur en éléments indépendants
INSTALLATION
et réutilisables, vous permettant ainsi de
considérer chaque élément de manière isolée. FONDAMENTAUX
Cette page fournit une introduction au concept
1. Bonjour, monde !
de composants. Vous trouverez une référence
2. Introduction à JSX
détaillée de l’API des composants ici.
3. Le rendu des éléments
4. Composants et props
Conceptuellement, les composants sont comme des
5. État et cycle de vie
fonctions JavaScript. Ils acceptent des entrées
quelconques (appelées « props ») et renvoient des 6. Gérer les événements
1. Bonjour, monde !
Les deux composants ci-dessus sont équivalents du
2. Introduction à JSX
point de vue de React.
3. Le rendu des éléments
4. Composants et props
Les composants (aussi bien fonctions que classes)
possèdent quelques fonctionnalités 5. État et cycle de vie
HOOKS
Mais ces éléments peuvent également représenter
des composants définis par l’utilisateur : TESTS
CONTRIBUER
Lorsque React rencontre un élément représentant
un composant défini par l’utilisateur, il transmet les FAQ
attributs JSX et les enfants à ce composant sous la
forme d’un objet unique. Nous appelons cet objet
Par exemple, ce code affiche « Bonjour, Sara » sur la
page :
INSTALLATION
function Welcome(props) {
FONDAMENTAUX
return <h1>Bonjour, {props.name}</h1>;
}
1. Bonjour, monde !
const element = <Welcome name="Sara" />; 2. Introduction à JSX
ReactDOM.render(
3. Le rendu des éléments
element,
document.getElementById('root') 4. Composants et props
);
5. État et cycle de vie
6. Gérer les événements
Essayer sur CodePen 7. Affichage conditionnel
8. Listes et clés
Récapitulons ce qui se passe dans cet exemple : 9. Formulaires
10. Faire remonter l'état
1. On appelle ReactDOM.render() avec l’élément
<Welcome name="Sara" /> .
11. Composition ou héritage ?
12. Penser en React
2. React appelle le composant Welcome avec
comme props {name: 'Sara'} .
GUIDES AVANCÉS
3. Notre composant Welcome retourne un élément
<h1>Bonjour, Sara</h1> pour résultat. RÉFÉRENCE DE L'API
TESTS
Remarque
React considère les composants commençant par MODE CONCURRENT (EXPÉRIMENT
FONDAMENTAUX
1. Bonjour, monde !
2. Introduction à JSX
3. Le rendu des éléments
Composition de composants
4. Composants et props
5. État et cycle de vie
Les composants peuvent faire référence à d’autres
composants dans leur sortie. Ça nous permet 6. Gérer les événements
function App() {
return ( TESTS
<div>
<Welcome name="Sara" />
MODE CONCURRENT (EXPÉRIMENT
<Welcome name="Cahal" />
<Welcome name="Edite" />
</div> CONTRIBUER
);
}
FAQ
ReactDOM.render(
<App />,
Essayer sur CodePen
function Comment(props) {
<Avatar user={props.author} />
<div className="UserInfo-name">
{props.author.name}
INSTALLATION
</div>
</div>
<div className="Comment-text"> FONDAMENTAUX
{props.text}
</div> 1. Bonjour, monde !
<div className="Comment-date">
{formatDate(props.date)}
2. Introduction à JSX
</div> 3. Le rendu des éléments
</div>
4. Composants et props
);
} 5. État et cycle de vie
6. Gérer les événements
l’utilisateur : 9. Formulaires
10. Faire remonter l'état
function UserInfo(props) {
11. Composition ou héritage ?
return ( 12. Penser en React
<div className="UserInfo">
<Avatar user={props.user} />
GUIDES AVANCÉS
<div className="UserInfo-name">
{props.user.name}
</div> RÉFÉRENCE DE L'API
</div>
);
HOOKS
}
TESTS
Ce qui nous permet de simplifier encore davantage
Comment : MODE CONCURRENT (EXPÉRIMENT
CONTRIBUER
function Comment(props) {
return (
<div className="Comment"> FAQ
<UserInfo user={props.author} />
<div className="Comment-text">
</div>
</div>
);
INSTALLATION
}
FONDAMENTAUX
Essayer sur CodePen
1. Bonjour, monde !
FONDAMENTAUX
React est plutôt flexible mais applique une règle
stricte : 1. Bonjour, monde !
2. Introduction à JSX
Tout composant React doit agir comme une 3. Le rendu des éléments
fonction pure vis-à-vis de ses props. 4. Composants et props
5. État et cycle de vie
Bien entendu, les interfaces utilisateurs des
6. Gérer les événements
applications sont dynamiques et évoluent dans le
7. Affichage conditionnel
temps. Dans la prochaine section, nous
8. Listes et clés
présenterons un nouveau concept « d’état local ».
9. Formulaires
L’état local permet aux composants React de
modifier leur sortie au fil du temps en fonction des 10. Faire remonter l'état
n’importe quoi d’autre, mais sans enfreindre cette 12. Penser en React
règle.
GUIDES AVANCÉS
RÉFÉRENCE DE L'API
CONTRIBUER
FONDAMENTAUX
1. Bonjour, monde !
2. Introduction à JSX
3. Le rendu des éléments
4. Composants et props
5. État et cycle de vie
6. Gérer les événements
7. Affichage conditionnel
8. Listes et clés
9. Formulaires
10. Faire remonter l'état
11. Composition ou héritage ?
12. Penser en React
GUIDES AVANCÉS
RÉFÉRENCE DE L'API
HOOKS
TESTS
CONTRIBUER
FAQ