Skip to content

Commit c7eee12

Browse files
committed
Update part1d.md
- Update React documentation links from legacy domain to react.dev - Fix typos
1 parent 4fff38d commit c7eee12

File tree

1 file changed

+14
-63
lines changed

1 file changed

+14
-63
lines changed

src/content/1/fr/part1d.md

Lines changed: 14 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -7,50 +7,6 @@ lang: fr
77

88
<div class="content">
99

10-
### Une note sur la version React
11-
12-
La version 18 de React est sortie fin mars 2022. Le code du matériel devrait fonctionner tel qu'il est avec la nouvelle version de React. Cependant, certaines bibliothèques peuvent ne pas encore être compatibles avec React 18. Au moment de la rédaction (4 avril), le client Apollo utilisé dans la [partie 8](/en/part8) ne fonctionne pas encore avec la version la plus récente de React.
13-
14-
Si vous vous retrouvez dans une situation où votre application tombe en panne en raison de problèmes de compatibilité de bibliothèque, <i>rétrogradez</i> vers l'ancien React en modifiant le fichier <i>package.json</i> comme suit :
15-
16-
```js
17-
{
18-
"dependencies": {
19-
"react": "^17.0.2", // highlight-line
20-
"react-dom": "^17.0.2", // highlight-line
21-
"react-scripts": "5.0.0",
22-
"web-vitals": "^2.1.4"
23-
},
24-
// ...
25-
}
26-
```
27-
28-
Une fois la modification effectuée, réinstallez les dépendances en exécutant
29-
30-
```js
31-
npm install
32-
```
33-
34-
Notez que le fichier <i>index.js</i> doit également être légèrement modifié. Pour React 17, cela ressemble à
35-
36-
```js
37-
import ReactDOM from 'react-dom'
38-
import App from './App'
39-
40-
ReactDOM.render(<App />, document.getElementById('root'))
41-
```
42-
43-
mais pour React 18, la forme correcte est
44-
45-
```js
46-
import React from 'react'
47-
import ReactDOM from 'react-dom/client'
48-
49-
import App from './App'
50-
51-
ReactDOM.createRoot(document.getElementById('root')).render(<App />)
52-
```
53-
5410
### État complexe
5511

5612
Dans notre exemple précédent, l'état de l'application était simple car il était composé d'un seul entier. Et si notre application nécessite un état plus complexe ?
@@ -204,7 +160,7 @@ L'application semble fonctionner. Cependant, <i>il est interdit dans React de mu
204160

205161
Stocker tout l'état dans un seul objet d'état est un mauvais choix pour cette application particulière ; il n'y a aucun avantage apparent et l'application qui en résulte est beaucoup plus complexe. Dans ce cas, stocker les compteurs de clics dans des éléments d'état séparés est un choix bien plus approprié.
206162

207-
Il existe des situations où il peut être avantageux de stocker une partie de l'état de l'application dans une structure de données plus complexe. [La documentation officielle de React](https://reactjs.org/docs/hooks-faq.html#should-i-use-one-or-many-state-variables) contient des conseils utiles sur le sujet.
163+
Il existe des situations où il peut être avantageux de stocker une partie de l'état de l'application dans une structure de données plus complexe. [La documentation officielle de React](https://react.dev/learn/choosing-the-state-structure) contient des conseils utiles sur le sujet.
208164

209165
### Gestion des tableaux
210166

@@ -346,7 +302,7 @@ Et dans tous les autres cas, le composant restitue l'historique des clics :
346302

347303
Le composant <i>History</i> rend des éléments React complètement différents en fonction de l'état de l'application. C'est ce qu'on appelle le <i>rendu conditionnel</i>.
348304

349-
React propose également de nombreuses autres façons de faire [le rendu conditionnel](https://reactjs.org/docs/conditional-rendering.html). Nous y reviendrons plus en détail dans la [partie 2](/fr/part2).
305+
React propose également de nombreuses autres façons de faire [le rendu conditionnel](https://react.dev/learn/conditional-rendering). Nous y reviendrons plus en détail dans la [partie 2](/fr/part2).
350306

351307
Apportons une dernière modification à notre application en la refactorisant pour utiliser le composant _Button_ que nous avons défini précédemment :
352308

@@ -406,7 +362,7 @@ const App = () => {
406362

407363
### Ancienne version de React
408364

409-
Dans ce cours, nous utilisons le [state hook](https://reactjs.org/docs/hooks-state.html) pour ajouter un état à nos composants React, qui fait partie des nouvelles versions de React et est disponible à partir de la version [ 16.8.0](https://www.npmjs.com/package/react/v/16.8.0) et versions ultérieures. Avant l'ajout des hooks, il n'y avait aucun moyen d'ajouter un état aux composants fonctionnels. Les composants qui nécessitaient un état devaient être définis en tant que composants [classes](https://reactjs.org/docs/react-component.html), à l'aide de la syntaxe de classe JavaScript.
365+
Dans ce cours, nous utilisons le [state hook](https://react.dev/learn/state-a-components-memory) pour ajouter un état à nos composants React, qui fait partie des nouvelles versions de React et est disponible à partir de la version [ 16.8.0](https://www.npmjs.com/package/react/v/16.8.0) et versions ultérieures. Avant l'ajout des hooks, il n'y avait aucun moyen d'ajouter un état aux composants fonctionnels. Les composants qui nécessitaient un état devaient être définis en tant que composants [classes](https://react.dev/reference/react/Component), à l'aide de la syntaxe de classe JavaScript.
410366

411367
Dans ce cours, nous avons pris la décision radicale d'utiliser exclusivement les hooks dès le premier jour, pour nous assurer que nous apprenons le style actuel et futur de React. Même si les composants fonctionnels sont l'avenir de React, il est toujours important d'apprendre la syntaxe de la classe, car il existe des milliards de lignes de code React que vous pourriez finir par maintenir un jour. Il en va de même pour la documentation et les exemples de React que vous pouvez trouver sur Internet.
412368

@@ -588,10 +544,10 @@ Si nous devions définir notre event handler sous forme de chaîne :
588544
React nous en avertirait dans la console :
589545

590546
```js
591-
index.js:2178 Warning: Expected `onClick` listener to be a function, instead got a value of `string` type.
592-
in button (at index.js:20)
593-
in div (at index.js:18)
594-
in App (at index.js:27)
547+
main.jsx:2178 Warning: Expected `onClick` listener to be a function, instead got a value of `string` type.
548+
in button (at main.jsx:20)
549+
in div (at main.jsx:18)
550+
in App (at main.jsx:27)
595551
```
596552

597553
La tentative suivante ne fonctionnerait pas non plus :
@@ -603,7 +559,7 @@ La tentative suivante ne fonctionnerait pas non plus :
603559
Nous avons tenté de définir le gestionnaire d'événements sur _value + 1_ qui renvoie simplement le résultat de l'opération. React nous en avertira gentiment dans la console :
604560

605561
```js
606-
index.js:2178 Warning: Expected `onClick` listener to be a function, instead got a value of `number` type.
562+
main.jsx:2178 Warning: Expected `onClick` listener to be a function, instead got a value of `number` type.
607563
```
608564

609565
Cette tentative ne fonctionnerait pas non plus :
@@ -1057,7 +1013,7 @@ Internet regorge de contenu lié à React. Cependant, nous utilisons le nouveau
10571013

10581014
Les liens suivants peuvent vous être utiles :
10591015

1060-
- La [documentation officielle de React](https://reactjs.org/docs/hello-world.html) vaut la peine d'être consultée à un moment donné, même si la plupart d'entre elles ne deviendront pertinentes que plus tard dans le cours. De plus, tout ce qui concerne les composants basés sur des classes ne nous concerne pas ;
1016+
- La [documentation officielle de React](https://react.dev/learn) vaut la peine d'être consultée à un moment donné, même si la plupart d'entre elles ne deviendront pertinentes que plus tard dans le cours. De plus, tout ce qui concerne les composants basés sur des classes ne nous concerne pas ;
10611017
- Certains cours sur [Egghead.io](https://egghead.io) comme [Start learning React](https://egghead.io/courses/start-learning-react) sont de haute qualité, et récemment mis à jour [ Le guide du débutant pour réagir](https://egghead.io/courses/the-beginner-s-guide-to-reactjs) est également relativement bon ; les deux cours introduisent des concepts qui seront également introduits plus tard dans ce cours. **NB** Le premier utilise des composants classes mais le second utilise les nouveaux composants fonctionnels.
10621018

10631019
</div>
@@ -1072,11 +1028,9 @@ N'oubliez pas de soumettre **tous** les exercices d'une partie **en une seule so
10721028

10731029
<i>Certains des exercices fonctionnent sur la même application. Dans ces cas, il suffit de soumettre uniquement la version finale de la demande. Si vous le souhaitez, vous pouvez effectuer un commit après chaque exercice terminé, mais ce n'est pas obligatoire.</i>
10741030

1075-
**ATTENTION** create-react-app transformera automatiquement votre projet en un référentiel git à moins que vous ne créiez votre application dans un référentiel git existant. **Il est fort probable que vous ne vouliez pas que chacun de vos projets soit un référentiel distinct**, il vous suffit donc d'exécuter la commande _rm -rf .git_ à la racine de votre application.
1076-
10771031
Dans certaines situations, vous devrez peut-être également exécuter la commande ci-dessous à partir de la racine du projet :
10781032

1079-
```
1033+
```bash
10801034
rm -rf node_modules/ && npm i
10811035
```
10821036

@@ -1090,18 +1044,17 @@ L'application doit afficher le nombre total de commentaires recueillis pour chaq
10901044

10911045
Notez que votre application ne doit fonctionner que pendant une seule session de navigateur. Une fois que vous avez actualisé la page, les commentaires recueillis sont autorisés à disparaître.
10921046

1093-
Il est conseillé d'utiliser la même structure que celle utilisée dans le matériel et l'exercice précédent. Le fichier <i>index.js</i> est le suivant :
1047+
Il est conseillé d'utiliser la même structure que celle utilisée dans le matériel et l'exercice précédent. Le fichier <i>main.jsx</i> est le suivant :
10941048

10951049
```js
1096-
import React from 'react'
10971050
import ReactDOM from 'react-dom/client'
10981051

10991052
import App from './App'
11001053

11011054
ReactDOM.createRoot(document.getElementById('root')).render(<App />)
11021055
```
11031056

1104-
Vous pouvez utiliser le code ci-dessous comme point de départ pour le fichier <i>App.js</i> :
1057+
Vous pouvez utiliser le code ci-dessous comme point de départ pour le fichier <i>App.jsx</i> :
11051058

11061059
```js
11071060
import { useState } from 'react'
@@ -1130,7 +1083,7 @@ Développez votre application pour qu'elle affiche plus de statistiques sur les
11301083

11311084
<h4>1.8 : unicafé, étape3</h4>
11321085

1133-
Refactorisez votre application afin que l'affichage des statistiques soit extrait dans son propre composant <i>Statistiques</i>. L'état de l'application doit rester dans le composant racine <i>App</i>.
1086+
Refactorisez votre application afin que l'affichage des statistiques soit extrait dans son propre composant <i>Statistics</i>. L'état de l'application doit rester dans le composant racine <i>App</i>.
11341087

11351088
N'oubliez pas que les composants ne doivent pas être définis à l'intérieur d'autres composants :
11361089

@@ -1236,16 +1189,14 @@ const App = () => {
12361189
export default App
12371190
```
12381191

1239-
Le contenu du fichier <i>index.js</i> est le même que dans les exercices précédents.
1192+
Le contenu du fichier <i>main.jsx</i> est le même que dans les exercices précédents.
12401193

12411194
Découvrez comment générer des nombres aléatoires en JavaScript, par exemple. via le moteur de recherche ou sur [Mozilla Developer Network](https://developer.mozilla.org). N'oubliez pas que vous pouvez tester la génération de nombres aléatoires, par ex. directement dans la console de votre navigateur.
12421195

12431196
Votre application terminée pourrait ressembler à ceci :
12441197

12451198
![](../../images/1/18a.png)
12461199

1247-
**ATTENTION** create-react-app transformera automatiquement votre projet en un référentiel git à moins que vous ne créiez votre application dans un référentiel git existant. **Il est fort probable que vous ne vouliez pas que chacun de vos projets soit un référentiel distinct**, il vous suffit donc d'exécuter la commande _rm -rf .git_ à la racine de votre application.
1248-
12491200
<h4>1.13* : anecdotes, étape2</h4>
12501201

12511202
Développez votre application afin de pouvoir voter pour l'anecdote affichée.

0 commit comments

Comments
 (0)