Skip to content

Commit 6329a45

Browse files
committed
Translation part 6 a in french line 112
1 parent 23d3ad4 commit 6329a45

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

src/content/6/fr/part6a.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,78 @@ Créez une nouvelle application Vite et installez </i>redux</i> avec la commande
3939
npm install redux
4040
```
4141

42+
Comme dans Flux, dans Redux, l'état est également stocké dans un [store](https://redux.js.org/basics/store).
43+
44+
L'ensemble de l'état de l'application est stocké dans <i>un</i> objet JavaScript dans le store. Étant donné que notre application n'a besoin que de la valeur du compteur, nous la sauvegarderons directement dans le store. Si l'état était plus compliqué, différentes choses dans l'état seraient sauvegardées comme champs séparés de l'objet.
45+
46+
L'état du store est modifié avec des [actions](https://redux.js.org/basics/actions). Les actions sont des objets, qui ont au moins un champ déterminant le <i>type</i> de l'action.
47+
Notre application a besoin par exemple de l'action suivante:
48+
49+
```js
50+
{
51+
type: 'INCREMENT'
52+
}
53+
```
54+
55+
Si l'action implique des données, d'autres champs peuvent être déclarés selon les besoins. Cependant, notre application de comptage est si simple que les actions sont suffisantes avec juste le champ de type.
56+
57+
L'impact de l'action sur l'état de l'application est défini à l'aide d'un [reducer](https://redux.js.org/basics/reducers). En pratique, un réducteur est une fonction à laquelle sont donnés l'état actuel et une action comme paramètres. Elle <i>retourne</i> un nouvel état.
58+
59+
Définissons maintenant un réducteur pour notre application:
60+
61+
```js
62+
const counterReducer = (state, action) => {
63+
if (action.type === 'INCREMENT') {
64+
return state + 1
65+
} else if (action.type === 'DECREMENT') {
66+
return state - 1
67+
} else if (action.type === 'ZERO') {
68+
return 0
69+
}
70+
71+
return state
72+
}
73+
```
74+
75+
Le premier paramètre est l'<i>état</i> dans le store. Le réducteur retourne un <i>nouvel état</i> basé sur le type de _l'action_. Ainsi, par exemple, lorsque le type de l'Action est <i>INCREMENT</i>, l'état obtient l'ancienne valeur plus un. Si le type de l'Action est <i>ZERO</i>, la nouvelle valeur de l'état est zéro.
76+
77+
Changeons un peu le code. Nous avons utilisé des instructions if-else pour répondre à une action et changer l'état. Cependant, l'instruction [switch](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch) est l'approche la plus courante pour écrire un réducteur.
78+
79+
Définissons également une [valeur par défaut](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters) de 0 pour le paramètre <i>état</i>. Maintenant, le réducteur fonctionne même si l'état du store n'a pas encore été initialisé.
80+
81+
```js
82+
// highlight-start
83+
const counterReducer = (state = 0, action) => {
84+
// highlight-end
85+
switch (action.type) {
86+
case 'INCREMENT':
87+
return state + 1
88+
case 'DECREMENT':
89+
return state - 1
90+
case 'ZERO':
91+
return 0
92+
default: // if none of the above matches, code comes here
93+
return state
94+
}
95+
}
96+
```
97+
98+
Reducer n'est jamais supposé être appelé directement depuis le code de l'application. Reducer est uniquement donné en paramètre à la fonction _createStore_ qui crée le store:
99+
100+
```js
101+
// highlight-start
102+
import { createStore } from 'redux'
103+
// highlight-end
104+
105+
const counterReducer = (state = 0, action) => {
106+
// ...
107+
}
108+
109+
// highlight-start
110+
const store = createStore(counterReducer)
111+
// highlight-end
112+
```
113+
42114

43115

44116
</div>

0 commit comments

Comments
 (0)