Skip to content

Commit cae2895

Browse files
committed
copy(l10n): react rules > react calls C/H
1 parent 1f071a6 commit cae2895

File tree

1 file changed

+34
-34
lines changed

1 file changed

+34
-34
lines changed

src/content/reference/rules/react-calls-components-and-hooks.md

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,102 +2,102 @@
22
title: React appelle les composants et les Hooks
33
---
44

5-
{/* FIXME:L10N */}
6-
75
<Intro>
8-
React is responsible for rendering components and Hooks when necessary to optimize the user experience. It is declarative: you tell React what to render in your component’s logic, and React will figure out how best to display it to your user.
6+
7+
React s'occupe de réaliser le rendu des composants et des Hooks lorsque c'est nécessaire, afin d'optimiser l'expérience utilisateur. C'est une approche déclarative : vous dites à React quel rendu effectuer dans la logique de votre composant, et React déterminera comment réaliser au mieux l'affichage pour l'utilisateur.
8+
99
</Intro>
1010

1111
<InlineToc />
1212

1313
---
1414

15-
## Never call component functions directly {/*never-call-component-functions-directly*/}
16-
Components should only be used in JSX. Don't call them as regular functions. React should call it.
15+
## N'appelez jamais les fonctions composants directement {/*never-call-component-functions-directly*/}
1716

18-
React must decide when your component function is called [during rendering](/reference/rules/components-and-hooks-must-be-pure#how-does-react-run-your-code). In React, you do this using JSX.
17+
Les composants ne devraient être utilisés que dans du JSX. Ne les appelez pas en tant que fonctions classiques. C'est à React de les appeler.
18+
19+
C'est à React de décider quand appeler votre fonction composant [lors du rendu](/reference/rules/components-and-hooks-must-be-pure#how-does-react-run-your-code). En React, vous utilisez pour ça la syntaxe JSX.
1920

2021
```js {2}
2122
function BlogPost() {
22-
return <Layout><Article /></Layout>; //Good: Only use components in JSX
23+
return <Layout><Article /></Layout>; //Correct : composants utilisés seulement par JSX
2324
}
2425
```
2526

2627
```js {2}
2728
function BlogPost() {
28-
return <Layout>{Article()}</Layout>; // 🔴 Bad: Never call them directly
29+
return <Layout>{Article()}</Layout>; // 🔴 Incorrect : ne les appelez jamais directement
2930
}
3031
```
3132

32-
If a component contains Hooks, it's easy to violate the [Rules of Hooks](/reference/rules/rules-of-hooks) when components are called directly in a loop or conditionally.
33+
Si un composant contient des Hooks, il est aisé d'enfreindre les [Règles des Hooks](/reference/rules/rules-of-hooks) lorsque les composants sont appelés directement au sein de boucles ou de conditions.
3334

34-
Letting React orchestrate rendering also allows a number of benefits:
35+
Le fait de laisser React orchestrer le rendu offre de nombreux avantages :
3536

36-
* **Components become more than functions.** React can augment them with features like _local state_ through Hooks that are tied to the component's identity in the tree.
37-
* **Component types participate in reconciliation.** By letting React call your components, you also tell it more about the conceptual structure of your tree. For example, when you move from rendering `<Feed>` to the `<Profile>` page, React won’t attempt to re-use them.
38-
* **React can enhance your user experience.** For example, it can let the browser do some work between component calls so that re-rendering a large component tree doesn’t block the main thread.
39-
* **A better debugging story.** If components are first-class citizens that the library is aware of, we can build rich developer tools for introspection in development.
40-
* **More efficient reconciliation.** React can decide exactly which components in the tree need re-rendering and skip over the ones that don't. That makes your app faster and more snappy.
37+
* **Les composants deviennent plus que de simples fonctions.** React peut leur ajouter des fonctionnalités telles que _l'état local_ au moyen de Hooks associés à l'identité du composant dans l'arbre.
38+
* **Les types des composants participent à la réconciliation.** En laissant React appeler vos composants, vous lui en dites plus sur la structure sémantique de votre arbre. Par exemple, lorsque vous passez du rendu d'un `<Feed>` à celui d'une page `<Profile>`, React ne risque pas de mélanger leurs données sous-jacentes.
39+
* **React peut améliorer l'expérience utilisateur.** Il peut par exemple laisser le navigateur traiter certaines tâches entre les appels des composants, afin que le rendu d'un énorme arbre de composants ne bloque pas le *thread* principal.
40+
* **Le débogage est facilité.** Si les composants sont des citoyens de plein droit connus de la bibliothèque, nous pouvons construire un outillage développeur·ses avancé pour les examiner lors du développement.
41+
* **La réconciliation est plus efficace.** React peut déterminer précisément quels composants dans l'arbre ont besoin d'un nouveau rendu, ainsi que ceux qui peuvent être laissés tels quels. Ça aide à rendre votre appli plus rapide et réactive.
4142

4243
---
4344

44-
## Never pass around Hooks as regular values {/*never-pass-around-hooks-as-regular-values*/}
45+
## Ne passez jamais des Hooks comme des valeurs classiques {/*never-pass-around-hooks-as-regular-values*/}
4546

46-
Hooks should only be called inside of components or Hooks. Never pass it around as a regular value.
47+
Les Hooks ne devraient être appelés qu'au sein de composants. Évitez de les manipuler ou transmettre comme des valeurs classiques.
4748

48-
Hooks allow you to augment a component with React features. They should always be called as a function, and never passed around as a regular value. This enables _local reasoning_, or the ability for developers to understand everything a component can do by looking at that component in isolation.
49+
Les Hooks vous permettent d'ajouter des fonctionnalités React à un composant. Ils devraient toujours être appelés en tant que fonctions, jamais traités comme des valeurs à transmettre. Ça permet un _raisonnement local_, c'est-à-dire que ça offre la possibilité pour les développeur·ses de comprendre l'entièreté d'un composant grâce à son seul code source.
4950

50-
Breaking this rule will cause React to not automatically optimize your component.
51+
Enfreindre cette règle empêchera React d'optimiser automatiquement votre composant.
5152

52-
### Don't dynamically mutate a Hook {/*dont-dynamically-mutate-a-hook*/}
53+
### Ne modifiez pas dynamiquement un Hook {/*dont-dynamically-mutate-a-hook*/}
5354

54-
Hooks should be as "static" as possible. This means you shouldn't dynamically mutate them. For example, this means you shouldn't write higher order Hooks:
55+
Les Hooks devraient être aussi « statiques » que possible. Ça signifie que vous ne devriez pas les modifier dynamiquement. Vous devriez par exemple éviter d'écrire des Hooks d'ordre supérieur :
5556

5657
```js {2}
5758
function ChatInput() {
58-
const useDataWithLogging = withLogging(useData); // 🔴 Bad: don't write higher order Hooks
59+
const useDataWithLogging = withLogging(useData); // 🔴 Déconseillé : évitez les Hooks d’ordre supérieur
5960
const data = useDataWithLogging();
6061
}
6162
```
6263

63-
Hooks should be immutable and not be mutated. Instead of mutating a Hook dynamically, create a static version of the Hook with the desired functionality.
64+
Les Hooks devraient être immuables, et donc non modifiés. Plutôt que de modifier dynamiquement un Hook, créez une version statique du Hook avec la fonctionnalité voulue.
6465

6566
```js {2,6}
6667
function ChatInput() {
67-
const data = useDataWithLogging(); //Good: Create a new version of the Hook
68+
const data = useDataWithLogging(); //Correct : utilise une nouvelle version du Hook
6869
}
6970

7071
function useDataWithLogging() {
71-
// ... Create a new version of the Hook and inline the logic here
72+
// ... Crée une nouvelle version du Hook en intégrant directement la logique ici
7273
}
7374
```
7475

75-
### Don't dynamically use Hooks {/*dont-dynamically-use-hooks*/}
76+
### N'utilisez pas dynamiquement les Hooks {/*dont-dynamically-use-hooks*/}
7677

77-
Hooks should also not be dynamically used: for example, instead of doing dependency injection in a component by passing a Hook as a value:
78+
Les Hooks ne devraient par ailluers pas être utilisés dynamique. Disons par exemple que vous recouriez à l'injection de dépendance en passant un Hook à un composant sous forme de valeur :
7879

7980
```js {2}
8081
function ChatInput() {
81-
return <Button useData={useDataWithLogging} /> // 🔴 Bad: don't pass Hooks as props
82+
return <Button useData={useDataWithLogging} /> // 🔴 Incorrect : ne passez pas les Hooks en props
8283
}
8384
```
8485

85-
You should always inline the call of the Hook into that component and handle any logic in there.
86+
Vous devriez toujours intégrer directement l'appel au Hook dans votre composant, et y traiter la logique associée.
8687

8788
```js {6}
8889
function ChatInput() {
8990
return <Button />
9091
}
9192

9293
function Button() {
93-
const data = useDataWithLogging(); //Good: Use the Hook directly
94+
const data = useDataWithLogging(); //Correct : utilise le Hook directement
9495
}
9596

9697
function useDataWithLogging() {
97-
// If there's any conditional logic to change the Hook's behavior, it should be inlined into
98-
// the Hook
98+
// Si une logique conditionnelle modifie le comportement du Hook, elle devrait être intégrée
99+
// directement dans le Hook.
99100
}
100101
```
101102

102-
This way, `<Button />` is much easier to understand and debug. When Hooks are used in dynamic ways, it increases the complexity of your app greatly and inhibits local reasoning, making your team less productive in the long term. It also makes it easier to accidentally break the [Rules of Hooks](/reference/rules/rules-of-hooks) that Hooks should not be called conditionally. If you find yourself needing to mock components for tests, it's better to mock the server instead to respond with canned data. If possible, it's also usually more effective to test your app with end-to-end tests.
103-
103+
De cette façon, il est bien plus facile de comprendre et déboguer `<Button />`. Lorsque les Hooks sont utilisés de façon dynamique, ça augmente significativement la complexité de votre appli et empêche le raisonnement local, ce qui réduit sur le long terme la productivité de votre équipe. Ça augmente aussi le risque d'enfreindre par inadvertance les [Règles des Hooks](/reference/rules/rules-of-hooks), qui dictent qu'un Hook ne doit jamais être appelé conditionnellement. Si vous vous retrouvez à devoir *mocker* des composants pour vos tests, il vaut mieux *mocker* le serveur pour qu'il réponde avec des données prédéfinies. Lorsque c'est possible, il est généralement plus efficace de tester votre appli au moyen de tests *end-to-end* (E2E).

0 commit comments

Comments
 (0)