Skip to content

Commit eda28bc

Browse files
emmadaltdd
andauthored
Apply suggestions from code review
Co-authored-by: Christophe Porteneuve <tdd@tddsworld.com>
1 parent 763f7a6 commit eda28bc

File tree

1 file changed

+25
-25
lines changed

1 file changed

+25
-25
lines changed

src/content/reference/react/lazy.md

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: lazy
44

55
<Intro>
66

7-
`lazy` vous permet de différer le chargement du composant jusqu'à son affichage pour la première fois.
7+
`lazy` vous permet de différer le chargement du code d'un composant jusqu'à son premier affichage effectif.
88

99
```js
1010
const SomeComponent = lazy(load)
@@ -20,43 +20,43 @@ const SomeComponent = lazy(load)
2020

2121
### `lazy(load)` {/*lazy*/}
2222

23-
Appelez `lazy` en dehors de vos composants pour déclarer un composant React lazy-loaded:
23+
Appelez `lazy` en-dehors de vos composants pour déclarer un composant React chargé à la demande :
2424

2525
```js
2626
import { lazy } from 'react';
2727

2828
const MarkdownPreview = lazy(() => import('./MarkdownPreview.js'));
2929
```
3030

31-
[Voir les exemples ci-dessous.](#usage)
31+
[Voir d'autres exemples ci-dessous](#usage).
3232

3333
#### Paramètres {/*parameters*/}
3434

35-
* `load`: Une fonction qui renvoie une [Promesse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) ou d'autres *thenable* (un objet de promesse résolue avec la méthode `then`). React n'appelera pas `load` avant la première fois que vous tentez d'afficher le composant renvoyé. Après que React ait appelé `load` pour la première fois, il patientera pour qu'il soit résolu, et ensuite affichera la valeur résolue comme un composant React. La promesse renvoyée et la promesse résolue seront toutes deux mises en cache, et React n'appelera pas `load` plus d'une fois. Si la promesse est rejetée, React `levera` la raison du rejet pour la limite d'erreur la plus proche à gérer.
35+
* `load` : une fonction qui renvoie une [promesse](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise) ou un *thenable* (un objet doté d'une méthode `then` compatible). React n'appellera pas `load` tant que vous ne tenterez pas d'afficher le composant renvoyé. Après que React a appelé `load` pour la première fois, il patientera pour que la promesse s'établisse, puis affichera la valeur accomplie comme composant React. Tant la promesse renvoyée que sa valeur d'accomplissement seront mises en cache, et React ne rappellera pas `load`. Si la promesse rejette, React lèvera (`throw`) la raison du rejet (généralement une `Error`) pour que le périmètre d'erreur le plus proche la gère.
3636

37-
#### Renvois {/*returns*/}
37+
#### Valeur renvoyée {/*returns*/}
3838

39-
`lazy` renvoi un composant React que vous pouvez faire le rendu dans votre arborescence. Pendant que le code du composant lazy est en cours de chargement, la tentative de l'afficher sera *suspendue*. Utilisez [`<Suspense>`](/reference/react/Suspense) pour afficher un indicateur de chargement pendant le chargement.
39+
`lazy` renvoie un composant React que vous pouvez afficher dans votre arborescence. Pendant que le code du composant chargé à la demande se charge, toute tentative de l'afficher *suspend*. Utilisez [`<Suspense>`](/reference/react/Suspense) pour afficher un indicateur de chargement pendant ce temps-là.
4040

4141
---
4242

4343
### La fonction `load` {/*load*/}
4444

4545
#### Paramètres {/*load-parameters*/}
4646

47-
`load` ne reçoit pas de paramètres.
47+
`load` ne prend aucun paramètre.
4848

49-
#### Renvois {/*load-returns*/}
49+
#### Valeur renvoyée {/*load-returns*/}
5050

51-
Vous aurez besoin de renvoyer une [Promesse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) ou d'autres *thenable* (un objet de promesse résolue avec la méthode `then`). il doit finalement se comporter comme un composant React valide, tel une qu'une fonction, [`memo`](/reference/react/memo), ou un composant [`forwardRef`](/reference/react/forwardRef).
51+
Vous aurez besoin de renvoyer une [promesse](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise) ou un *thenable* (un objet doté d'une méthode `then` compatible). La valeur accomplie doit finalement se comporter comme un composant React valide, tel une qu'une fonction, un composant [`memo`](/reference/react/memo), ou un composant [`forwardRef`](/reference/react/forwardRef).
5252

5353
---
5454

55-
## Mode d’utilisation {/*usage*/}
55+
## Utilisation {/*usage*/}
5656

57-
### Composants Lazy-loading avec Suspense {/*suspense-for-code-splitting*/}
57+
### Charger des composants à la demande avec Suspense {/*suspense-for-code-splitting*/}
5858

59-
En général, vous importez vos composants avec la déclaration statique [`import`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import) :
59+
En général, vous importez vos composants avec la déclaration statique [`import`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/import) :
6060

6161
```js
6262
import MarkdownPreview from './MarkdownPreview.js';
@@ -70,9 +70,9 @@ import { lazy } from 'react';
7070
const MarkdownPreview = lazy(() => import('./MarkdownPreview.js'));
7171
```
7272

73-
Ce code s'appuie sur [l'importation dynamique `import()`,](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import) ce qui peut nécessiter l'aide de votre bundler ou framework.
73+
Ce code s'appuie sur [l'importation dynamique `import()`,](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/import), ce qui peut nécessiter une prise en charge de votre *bundler* ou framework.
7474

75-
Maintenant que le code de votre composant se charge à la demande, vous aurez besoin de spécifier ce qui devra afficher pendant son chargement. Vous pouvez faire cela en enrobant le composant lazy ou l'un de ses parents dans une limitte [`<Suspense>`](/reference/react/Suspense) :
75+
Maintenant que le code de votre composant se charge à la demande, vous aurez besoin de spécifier ce qui devrait être affiché pendant son chargement. Vous pouvez le faire en enrobant le composant chargé à la demande ou l'un de ses parents dans un périmètre [`<Suspense>`](/reference/react/Suspense) :
7676

7777
```js {1,4}
7878
<Suspense fallback={<Loading />}>
@@ -81,7 +81,7 @@ Maintenant que le code de votre composant se charge à la demande, vous aurez be
8181
</Suspense>
8282
```
8383

84-
Dans cet exemple, le code de `MarkdownPreview` ne sera pas chargé jusqu'à ce que vous essayez de l'afficher. Si `MarkdownPreview` n'est pas encore chargé, `Loading` sera affiché à sa place. Essayez de cocher la case :
84+
Dans cet exemple, le code de `MarkdownPreview` ne sera pas chargé jusqu'à ce que vous essayiez de l'afficher. Si `MarkdownPreview` n'est pas encore chargé, `Loading` sera affiché à sa place. Essayez de cocher la case :
8585

8686
<Sandpack>
8787

@@ -93,13 +93,13 @@ const MarkdownPreview = lazy(() => delayForDemo(import('./MarkdownPreview.js')))
9393

9494
export default function MarkdownEditor() {
9595
const [showPreview, setShowPreview] = useState(false);
96-
const [markdown, setMarkdown] = useState('Bonjour, **monde**!');
96+
const [markdown, setMarkdown] = useState('Salut **tout le monde** !');
9797
return (
9898
<>
9999
<textarea value={markdown} onChange={e => setMarkdown(e.target.value)} />
100100
<label>
101101
<input type="checkbox" checked={showPreview} onChange={e => setShowPreview(e.target.checked)} />
102-
Afficher l'aperçu
102+
Afficher laperçu
103103
</label>
104104
<hr />
105105
{showPreview && (
@@ -112,7 +112,7 @@ export default function MarkdownEditor() {
112112
);
113113
}
114114

115-
// Ajouter un délai fixe pour voir l'état de chargement
115+
// Ajouter un délai fixe pour voir létat de chargement
116116
function delayForDemo(promise) {
117117
return new Promise(resolve => {
118118
setTimeout(resolve, 2000);
@@ -175,34 +175,34 @@ body {
175175

176176
</Sandpack>
177177

178-
Cette démo se charge avec un retard artificiel. La prochaine fois que vous décochez et cochez la case, `Preview` sera mis en cache, il n'y aura donc pas d'état de chargement. Pour voir à nouveau l'état de chargement, Cliquez sur "Réinitialiser" dans le bac à sable.
178+
Cette démo se charge avec un retard artificiel. La prochaine fois que vous décochez et cochez la case, `Preview` sera mis en cache, il n'y aura donc pas d'état de chargement. Pour voir à nouveau l'état de chargement, cliquez sur "Réinitialiser" dans le bac à sable.
179179

180180
[En savoir plus sur la gestion des états de chargement avec Suspense](/reference/react/Suspense).
181181

182182
---
183183

184-
## Résolution des problèmes {/*troubleshooting*/}
184+
## Dépannage {/*troubleshooting*/}
185185

186-
### L'état de mon composant `lazy` se réinitialise de façon inattendue {/*my-lazy-components-state-gets-reset-unexpectedly*/}
186+
### L'état de mon composant `lazy` est réinitialisé de façon inattendue {/*my-lazy-components-state-gets-reset-unexpectedly*/}
187187

188-
Ne déclarez pas les composants `lazy` *à l'interieur* d'autres composants
188+
Ne déclarez pas les composants `lazy` *à l'intérieur* d'autres composants :
189189

190190
```js {4-5}
191191
import { lazy } from 'react';
192192

193193
function Editor() {
194-
// 🔴 Mauvais: Cela entraînera la réinitialisation de tous les états lors des réaffichages
194+
// 🔴 Erroné : ça entraînera la réinitialisation de tous les états lors des réaffichages
195195
const MarkdownPreview = lazy(() => import('./MarkdownPreview.js'));
196196
// ...
197197
}
198198
```
199199

200-
Au lieu de cela, déclarez-les toujours au début de votre module :
200+
Déclarez-les toujours plutôt au début de votre module :
201201

202202
```js {3-4}
203203
import { lazy } from 'react';
204204

205-
//Parfait: Déclarez les composants lazy en déhors de vos composants
205+
//Correct : déclarez les composants lazy en-dehors de vos composants
206206
const MarkdownPreview = lazy(() => import('./MarkdownPreview.js'));
207207

208208
function Editor() {

0 commit comments

Comments
 (0)