You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/community/team.md
+5-5Lines changed: 5 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -18,10 +18,6 @@ Les membres actuels de l'équipe React sont listés ci-dessous par ordre alphab
18
18
Andrew a commencé le développement web en faisant des sites avec Wordpress, puis il a fini par se persuader de faire du JavaScript. Son passe-temps favori est le karaoké. Selon son humeur du jour, Andrew est soit un méchant Disney, soit une princesse Disney.
19
19
</TeamMember>
20
20
21
-
<TeamMembername="Andrey Lunyov"permalink="andrey-lunyov"photo="/images/team/andrey-lunyov.jpg"github="alunyov"twitter="alunyov"threads="alunyov"title="Ingénieur chez Meta">
22
-
Andrey a commencé sa carrière comme designer pour progressivement passer au développement web. Après avoir rejoint l'équipe React Data chez Meta, il a travaillé à ajouter un compilateur incrémental JavaScript dans Relay… pour finir par le retirer plus tard. Hors du boulot, Andrey aime jouer de la musique et faire divers types de sports.
Dan a commencé à programmer lorsqu'il a découvert par hasard qu'il y avait Visual Basic dans Microsoft Powerpoint. Il a découvert que sa véritable vocation consistait à transformer les tweets de [Sebastian](#sebastian-markbåge) en billets de blog interminables. Dan gagne parfois à Fortnite en se cachant dans un buisson jusqu'à la fin de la partie.
27
23
</TeamMember>
@@ -30,6 +26,10 @@ Les membres actuels de l'équipe React sont listés ci-dessous par ordre alphab
30
26
Eli a commencé la programmation après avoir été suspendu au collège pour piratage. Il travaille sur React et React Native depuis 2017. Il aime manger des sucreries, en particulier les crèmes glacées et la tarte aux pommes. Vous le trouverez généralement en train d'essayer des trucs un peu fous comme le parkour, les simulateurs de chute libre ou la danse aérienne sur rubans de soie.
31
27
</TeamMember>
32
28
29
+
<TeamMembername="Jack Pope"permalink="jack-pope"photo="/images/team/jack-pope.jpg"github="jackpope"personal="jackpope.me"title="Ingénieur chez Meta">
30
+
Peut après avoir découvert AutoHotkey, Jack écrivait des scripts pour automatiser tout ce à quoi il pouvait penser. Lorsqu'il a atteint les limites de l'exercice, il s'est plongé dans le développement web et n'a jamais regardé en arrière. Dernièrement, Jack a travaillé sur la plateforme web d'Instagram, avant de migrer vers React. Son langage de programmation préféré est JSX.
31
+
</TeamMember>
32
+
33
33
<TeamMembername="Jason Bonta"permalink="jason-bonta"photo="/images/team/jasonbonta.jpg"threads="someextent"title="Manager d’ingénieurs chez Meta">
34
34
Jason aime faire livrer des tonnes de paquets Amazon au boulot pour pouvoir se construire des forts. Bien qu'il se soit parfois littéralement cloisonné de son équipe, et même s'il ne comprend pas comment fonctionne une boucle for-of, on l'aime pour les qualités uniques qu'il met dans son travail.
35
35
</TeamMember>
@@ -74,7 +74,7 @@ Les membres actuels de l'équipe React sont listés ci-dessous par ordre alphab
74
74
Sébastien a étudié la psychologie. Il est généralement silencieux. Même lorsqu'il dit quelque chose, ça ne finit par avoir du sens pour le reste d'entre nous que quelques mois plus tard. La véritable pronconciation de son nom de famille est « marc-bau-jai », mais il a fini par tolérer « marc-beige » par pur pragmatisme — une approche qu'il applique aussi à React.
<TeamMembername="Sebastian Silbermann"permalink="sebastian-silbermann"photo="/images/team/sebsilbermann.jpg"github="eps1lon"twitter="sebsilbermann"threads="sebsilbermann"title="Ingénieur chez Vercel">
78
78
Sebastian a appris à programmer pour améliorer les jeux auxquels il jouait en cours dans son navigateur. Ça l'a amené à contribuer à énormément de code en logiciel libre. Lorsqu'il n'est pas en train de coder, il est très occupé à s'assurer qu'on ne le confond pas avec les autres Sebastian et Zilberman de la communauté React.
Copy file name to clipboardExpand all lines: src/content/learn/typescript.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -453,7 +453,7 @@ Nous vous conseillons les ressources suivantes *(toutes en anglais, NdT)* :
453
453
454
454
-[Le handbook TypeScript](https://www.typescriptlang.org/docs/handbook/) est la documentation officielle du langage et couvre tous les aspects importants.
455
455
456
-
-[Les notes de versions de TypeScript](https://devblogs.microsoft.com/typescript/) présentent chaque nouvelle fonctionnalité en détails.
456
+
-[Les notes de versions de TypeScript](https://devblogs.microsoft.com/typescript/) présentent les nouvelles fonctionnalités en détails.
457
457
458
458
-[L'antisèche React TypeScript](https://react-typescript-cheatsheet.netlify.app/) est une antisèche synthétique maintenue par la communauté pour utiliser TypeScript avec React, qui couvre pas mal de cas à la marge et aborde plus de sujets que cette page.
Copy file name to clipboardExpand all lines: src/content/reference/react-dom/flushSync.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -52,7 +52,7 @@ La plupart du temps, vous devriez éviter `flushSync`. Ne l'utilisez qu'en derni
52
52
53
53
*`flushSync` peut nuire fortement aux performances. Ne l'utilisez qu'avec parcimonie.
54
54
*`flushSync` peut forcer des périmètres Suspense en attente à afficher leur contenu de secours.
55
-
*`flushSync` peut exécuter des effets en attente et appliquer leurs mises à jour d'état de façon synchrone avant de terminer.
55
+
*`flushSync` peut exécuter des Effets en attente et appliquer leurs mises à jour d'état de façon synchrone avant de terminer.
56
56
*`flushSync` peut traiter des mises à jour d'état en attente demandées hors de la fonction de rappel si celles-ci sont nécessaires aux mises à jour demandées dans la fonction de rappel. Par exemple, si certaines mises à jour sont en attente suite à un clic, React risque de devoir les traiter avant de traiter celles issues de la fonction de rappel.
*`id` : la prop textuelle `id` du `<Profiler>` qui vient de boucler son rendu. Elle vous permet d’identifier quelle partie de l’arbre est finalisée lorsque vous utilisez plusieurs profileurs.
57
-
*`phase` : `"mount"`, `"update"` ou `"nested-update"`. Ça vous permet de savoir si l’arbre vient d’être monté pour la première fois ou a fait un nouveau rendu suite à un changement dans les props, l’état ou les hooks.
57
+
*`phase` : `"mount"`, `"update"` ou `"nested-update"`. Ça vous permet de savoir si l’arbre vient d’être monté pour la première fois ou a fait un nouveau rendu suite à un changement dans les props, l’état ou les Hooks.
58
58
*`actualDuration` : la durée en millisecondes du rendu du `<Profiler>` et de ses enfants pour la mise à jour concernée. Ça indique à quel point vos descendants profitent de la mémoïsation (notamment [`memo`](/reference/react/memo) et [`useMemo`](/reference/react/useMemo)). Idéalement, cette valeur devrait décroître de façon significative après le montage initial car la plupart des descendants ne referont un rendu que si leurs props changent.
59
59
*`baseDuration` : une estimation de la durée en millisecondes que prendrait un rendu complet du `<Profiler>` et de ses descendants, sans aucune optimisation. Elle est calculée en ajoutant les durées de rendu les plus récentes de chaque composant concerné. Cette valeur représente le coût maximal de rendu (c’est-à-dire le temps initial de montage sans mémoïsation). Comparez-la avec `actualDuration` pour déterminer si la mémoïsation fonctionne.
60
60
*`startTime` : un horodatage numérique du début de la mise à jour par React.
Copy file name to clipboardExpand all lines: src/content/reference/react/Suspense.md
+10-10Lines changed: 10 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -1362,7 +1362,7 @@ input { margin: 10px; }
1362
1362
1363
1363
<Note>
1364
1364
1365
-
Les valeurs différées ainsi que les [transitions](#preventing-already-revealed-content-from-hiding) vous permettent d'éviter d'afficher le contenu de secours Suspense en lui préférant une indication de chargement. Les transitions marquent l'ensemble de leur mise à jour comme non urgente, elles sont donc généralement utilisées par les frameworks et les bibliothèques de routage pour la navigation. Les valeurs différées sont elles surtout utiles dans du code applicatif lorsque vous souhaitez indiquer qu'une partie de l'UI est non urgente, pour lui permettre d'être temporairement « en retard » sur le reste de l'UI.
1365
+
Les valeurs différées ainsi que les [Transitions](#preventing-already-revealed-content-from-hiding) vous permettent d'éviter d'afficher le contenu de secours Suspense en lui préférant une indication de chargement. Les transitions marquent l'ensemble de leur mise à jour comme non urgente, elles sont donc généralement utilisées par les frameworks et les bibliothèques de routage pour la navigation. Les valeurs différées sont elles surtout utiles dans du code applicatif lorsque vous souhaitez indiquer qu'une partie de l'UI est non urgente, pour lui permettre d'être temporairement « en retard » sur le reste de l'UI.
1366
1366
1367
1367
</Note>
1368
1368
@@ -1745,7 +1745,7 @@ main {
1745
1745
1746
1746
Quand vous avez appuyé sur le bouton, le composant `Router` a affiché `ArtistPage` au lieu de `IndexPage`. Un composant au sein d'`ArtistPage` a suspendu, du coup le plus proche périmètre Suspense a basculé sur son contenu de secours. Comme ce périmètre était proche de la racine, la mise en page complète du site a été remplacée par `BigSpinner`.
1747
1747
1748
-
Pour éviter ça, vous pouvez indiquer que la mise à jour de l'état de navigation est une *transition*, en utilisant [`startTransition`](/reference/react/startTransition) :
1748
+
Pour éviter ça, vous pouvez indiquer que la mise à jour de l'état de navigation est une *Transition*, en utilisant [`startTransition`](/reference/react/startTransition) :
1749
1749
1750
1750
```js {5,7}
1751
1751
functionRouter() {
@@ -1759,7 +1759,7 @@ function Router() {
1759
1759
// ...
1760
1760
```
1761
1761
1762
-
Ça dit à React que cette transition d'état n'est pas urgente, et qu'il est préférable de continuer à afficher la page précédente plutôt que de masquer du contenu déjà révélé. À présent cliquer sur le bouton « attend » que `Biography` soit chargé :
1762
+
Ça dit à React que cette Transition d'état n'est pas urgente, et qu'il est préférable de continuer à afficher la page précédente plutôt que de masquer du contenu déjà révélé. À présent cliquer sur le bouton « attend » que `Biography` soit chargé :
1763
1763
1764
1764
<Sandpack>
1765
1765
@@ -2134,19 +2134,19 @@ main {
2134
2134
2135
2135
</Sandpack>
2136
2136
2137
-
Une transition n'attend pas que *tout* le contenu soit chargé. Elle attend seulement assez longtemps pour éviter d'avoir à masquer du contenu déjà révélé. Par exemple, le `Layout` du site était déjà révélé, ce serait donc dommage de le masquer derrière un *spinner* de chargement. En revanche, le périmètre `Suspense` imbriqué autour d'`Albums` est nouveau, la transition ne l'attend donc pas.
2137
+
Une Transition n'attend pas que *tout* le contenu soit chargé. Elle attend seulement assez longtemps pour éviter d'avoir à masquer du contenu déjà révélé. Par exemple, le `Layout` du site était déjà révélé, ce serait donc dommage de le masquer derrière un *spinner* de chargement. En revanche, le périmètre `Suspense` imbriqué autour d'`Albums` est nouveau, la Transition ne l'attend donc pas.
2138
2138
2139
2139
<Note>
2140
2140
2141
-
Les routeurs compatibles Suspense sont censés enrober par défaut leurs navigations dans des transitions.
2141
+
Les routeurs compatibles Suspense sont censés enrober par défaut leurs navigations dans des Transitions.
2142
2142
2143
2143
</Note>
2144
2144
2145
2145
---
2146
2146
2147
-
### Indiquer qu'une transition est en cours {/*indicating-that-a-transition-is-happening*/}
2147
+
### Indiquer qu'une Transition est en cours {/*indicating-that-a-transition-is-happening*/}
2148
2148
2149
-
Dans l'exemple précédent, une fois que vous avez cliqué sur le bouton, aucune indication visuelle ne vous informe qu'une navigation est en cours. Pour ajouter une indication, vous pouvez remplacer [`startTransition`](/reference/react/startTransition) par [`useTransition`](/reference/react/useTransition), qui vous donne une valeur booléenne `isPending`. Dans l'exemple qui suit, on l'utilise pour modifier le style de l'en-tête du site pendant qu'une transition est en cours :
2149
+
Dans l'exemple précédent, une fois que vous avez cliqué sur le bouton, aucune indication visuelle ne vous informe qu'une navigation est en cours. Pour ajouter une indication, vous pouvez remplacer [`startTransition`](/reference/react/startTransition) par [`useTransition`](/reference/react/useTransition), qui vous donne une valeur booléenne `isPending`. Dans l'exemple qui suit, on l'utilise pour modifier le style de l'en-tête du site pendant qu'une Transition est en cours :
2150
2150
2151
2151
<Sandpack>
2152
2152
@@ -2527,13 +2527,13 @@ main {
2527
2527
2528
2528
### Réinitialiser les périmètres Suspense à la navigation {/*resetting-suspense-boundaries-on-navigation*/}
2529
2529
2530
-
Pendant une transition, React évitera de masquer du contenu déjà révélé. Ceci dit, lorsque vous naviguez vers une route aux paramètres différents, vous voudrez peut-être indiquer à React que le contenu est *différent*. Vous pouvez exprimer ça avec une `key` :
2530
+
Pendant une Transition, React évitera de masquer du contenu déjà révélé. Ceci dit, lorsque vous naviguez vers une route aux paramètres différents, vous voudrez peut-être indiquer à React que le contenu est *différent*. Vous pouvez exprimer ça avec une `key` :
2531
2531
2532
2532
```js
2533
2533
<ProfilePage key={queryParams.id} />
2534
2534
```
2535
2535
2536
-
Imaginez que vous naviguiez au sein d'une page de profil utilisateur, et que quelque chose suspende. Si cette mise à jour est enrobée dans une transition, elle ne déclenchera pas de contenu de secours pour le contenu déjà visible. C'est bien le comportement attendu.
2536
+
Imaginez que vous naviguiez au sein d'une page de profil utilisateur, et que quelque chose suspende. Si cette mise à jour est enrobée dans une Transition, elle ne déclenchera pas de contenu de secours pour le contenu déjà visible. C'est bien le comportement attendu.
2537
2537
2538
2538
En revanche, imaginez maintenant que vous naviguiez entre deux profils utilisateurs différents. Dans ce cas, afficher le contenu de secours aurait du sens. Par exemple, le fil des publications d'un utilisateur constitue un *contenu différent* de celui d'un autre utilisateur. En spécifiant une `key`, vous garantissez que React traitera les fils de publications d'utilisateurs différents comme des composants différents, et réinitialisera les périmètres Suspense lors de la navigation. Les routeurs compatibles Suspense sont censés le faire automatiquement.
2539
2539
@@ -2570,7 +2570,7 @@ Le HTML produit par le serveur incluera l'indicateur de chargement. Il sera ensu
2570
2570
2571
2571
Le remplacement d'une UI visible par un contenu de secours produit une expérience utilisateur désagréable. Ça peut arriver lorsqu'une mise à jour entraîne la suspension d'un composant, et que le périmètre Suspense le plus proche affiche déjà du contenu à l'utilisateur.
2572
2572
2573
-
Pour empêcher ça, [indiquez que la mise à jour est non urgente grâce à `startTransition`](#preventing-already-revealed-content-from-hiding). Pendant la transition, React attendra jusqu'à ce qu'assez de données aient été chargées, afin d'éviter l'affichage d'un contenu de secours indésirable :
2573
+
Pour empêcher ça, [indiquez que la mise à jour est non urgente grâce à `startTransition`](#preventing-already-revealed-content-from-hiding). Pendant la Transition, React attendra jusqu'à ce qu'assez de données aient été chargées, afin d'éviter l'affichage d'un contenu de secours indésirable :
Copy file name to clipboardExpand all lines: src/content/reference/react/index.md
+8Lines changed: 8 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -29,6 +29,14 @@ React-DOM comprend les fonctionnalités qui ne sont prises en charge que pour le
29
29
*[Fonctions côté client](/reference/react-dom/client) - L'API dans `react-dom/client` vous permet d'effectuer le rendu de composants React côté client (dans le navigateur).
30
30
*[Fonctions côté serveur](/reference/react-dom/server) - L'API dans `react-dom/server` vous permet d'effectuer le rendu de composants React côté serveur, vers du HTML.
31
31
32
+
## Les règles de React {/*rules-of-react*/}
33
+
34
+
React repose sur des idiomes — ou règles — visant à exprimer vos approches de façon facile à comprendre, et à même de produire des applications de grande qualité :
35
+
36
+
*[Les composants et les Hooks doivent être purs](/reference/rules/components-and-hooks-must-be-pure) – Cette pureté facilite la compréhension de votre code ainsi que son débogage, et permet à React d'optimiser automatiquement et correctement vos composants et Hooks.
37
+
*[React appelle les composants et les Hooks](/reference/rules/react-calls-components-and-hooks) – React est responsable du rendu des composants et des Hooks de façon à optimiser l'expérience utilisateur.
38
+
*[Les règles des Hooks](/reference/rules/rules-of-hooks) – Les Hooks reposent sur de simples fonctions JavaScript, mais ils représentent un type spécifique de logique UI réutilisable, et ne peuvent être appelés que dans des circonstances bien précises.
39
+
32
40
## API React historique {/*legacy-apis*/}
33
41
34
42
*[API React historique](/reference/react/legacy) - Ces fonctions sont présentes dans le module `react`, mais leur utilisation est découragée pour tout nouveau code.
0 commit comments