Skip to content

Commit ae44a29

Browse files
Merge pull request #12 from vuejs-fr/actions
Traduction de `actions.md`
2 parents e17989a + ccdc719 commit ae44a29

File tree

1 file changed

+36
-36
lines changed

1 file changed

+36
-36
lines changed

docs/en/actions.md

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# Actions
22

3-
Actions are similar to mutations, the difference being that:
3+
Les actions sont similaires aux mutations, à la différence que :
44

5-
- Instead of mutating the state, actions commit mutations.
6-
- Actions can contain arbitrary asynchronous operations.
5+
- Au lieu de modifier l'état, les actions actent des mutations.
6+
- Les actions peuvent contenir des opérations asynchrones.
77

8-
Let's register a simple action:
8+
Enregistrons une simple action :
99

1010
``` js
1111
const store = new Vuex.Store({
@@ -25,9 +25,9 @@ const store = new Vuex.Store({
2525
})
2626
```
2727

28-
Action handlers receive a context object which exposes the same set of methods/properties on the store instance, so you can call `context.commit` to commit a mutation, or access the state and getters via `context.state` and `context.getters`. We will see why this context object is not the store instance itself when we introduce [Modules](modules.md) later.
28+
Les gestionnaires d'action reçoivent un objet contexte qui expose le même ensemble de méthodes et propriétés que l'instance du store, donc vous pouvez appeler `context.commit` pour acter une mutation, ou accéder à l'état et aux accesseurs via `context.state` et `context.getters`. Nous verrons pourquoi cet objet contexte n'est pas l'instance du store elle-même lorsque nous présenterons les [Modules](modules.md) plus tard.
2929

30-
In practice, we often use ES2015 [argument destructuring](https://github.com/lukehoban/es6features#destructuring) to simplify the code a bit (especially when we need to call `commit` multiple times):
30+
En pratique, nous utilisons souvent la [destructuration d'argument](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Op%C3%A9rateurs/Affecter_par_d%C3%A9composition) pour simplifier quelque peu le code (particulièrement si nous avons besoin d'appeler `commit` plusieurs fois) :
3131

3232
``` js
3333
actions: {
@@ -37,15 +37,15 @@ actions: {
3737
}
3838
```
3939

40-
### Dispatching Actions
40+
### Propager des actions dans les composants
4141

42-
Actions are triggered with the `store.dispatch` method:
42+
Les actions sont déclenchées par la méthode `store.dispatch` :
4343

4444
``` js
4545
store.dispatch('increment')
4646
```
4747

48-
This may look dumb at first sight: if we want to increment the count, why don't we just call `store.commit('increment')` directly? Well, remember that **mutations must be synchronous**? Actions don't. We can perform **asynchronous** operations inside an action:
48+
Cela peut sembler idiot au premier abord : si nous avons besoin d'incrémenter le compteur, pourquoi ne pas simplement appeler `store.commit('increment')` directement ? Et bien, vous rappelez-vous que **les mutations doivent être synchrones** ? Les actions ne suivent pas cette règle. Il est possible de procéder à des opérations **asynchrones** dans une action :
4949

5050
``` js
5151
actions: {
@@ -57,48 +57,48 @@ actions: {
5757
}
5858
```
5959

60-
Actions support the same payload format and object-style dispatch:
60+
Les actions prennent également en charge les paramètres additionnels (« payload ») et les objets pour propager :
6161

6262
``` js
63-
// dispatch with a payload
63+
// propager avec un paramètre additionnel
6464
store.dispatch('incrementAsync', {
6565
amount: 10
6666
})
6767

68-
// dispatch with an object
68+
// propager avec un objet
6969
store.dispatch({
7070
type: 'incrementAsync',
7171
amount: 10
7272
})
7373
```
7474

75-
A more practical example of real-world actions would be an action to checkout a shopping cart, which involves **calling an async API** and **committing multiple mutations**:
75+
Un exemple concret d'application serait une action pour vider un panier d'achats, ce qui implique **d'appeler une API asynchrone** et d'**acter de multiples mutations** :
7676

7777
``` js
7878
actions: {
7979
checkout ({ commit, state }, products) {
80-
// save the items currently in the cart
80+
// sauvegarder les articles actuellement dans le panier
8181
const savedCartItems = [...state.cart.added]
82-
// send out checkout request, and optimistically
83-
// clear the cart
82+
// envoyer la requête de checkout,
83+
// et vider le panier
8484
commit(types.CHECKOUT_REQUEST)
85-
// the shop API accepts a success callback and a failure callback
85+
// l'API de la boutique en ligne prend une fonction de rappel en cas de succès et une autre en cas d'échec
8686
shop.buyProducts(
8787
products,
88-
// handle success
88+
// gérer le succès
8989
() => commit(types.CHECKOUT_SUCCESS),
90-
// handle failure
90+
// gérer l'échec
9191
() => commit(types.CHECKOUT_FAILURE, savedCartItems)
9292
)
9393
}
9494
}
9595
```
9696

97-
Note we are performing a flow of asynchronous operations, and recording the side effects (state mutations) of the action by committing them.
97+
Notez que nous procédons à un flux d'opérations asynchrones, et enregistrons les effets de bord (mutation de l'état) de l'action en les actant.
9898

99-
### Dispatching Actions in Components
99+
### Propager des actions dans les composants
100100

101-
You can dispatch actions in components with `this.$store.dispatch('xxx')`, or use the `mapActions` helper which maps component methods to `store.dispatch` calls (requires root `store` injection):
101+
Vous pouvez propager des actions dans les composants avec `this.$store.dispatch('xxx')`, ou en utilisant la fonction utilitaire `mapActions` qui attache les méthodes du composant aux appels de `store.dispatch` (nécessite l'injection de `store` à la racine) :
102102

103103
``` js
104104
import { mapActions } from 'vuex'
@@ -107,23 +107,23 @@ export default {
107107
// ...
108108
methods: {
109109
...mapActions([
110-
'increment', // map this.increment() to this.$store.dispatch('increment')
111-
112-
// mapActions also supports payloads:
113-
'incrementBy' // this.incrementBy(amount) maps to this.$store.dispatch('incrementBy', amount)
110+
'increment' // attacher `this.increment()` à `this.$store.dispatch('increment')`
111+
112+
// `mapActions` supporte également les paramètres additionnels :
113+
'incrementBy' // attacher `this.incrementBy(amount)` à `this.$store.dispatch('incrementBy', amount)`
114114
]),
115115
...mapActions({
116-
add: 'increment' // map this.add() to this.$store.dispatch('increment')
116+
add: 'increment' // attacher `this.add()` à `this.$store.dispatch('increment')`
117117
})
118118
}
119119
}
120120
```
121121

122-
### Composing Actions
122+
### Composer les actions
123123

124-
Actions are often asynchronous, so how do we know when an action is done? And more importantly, how can we compose multiple actions together to handle more complex async flows?
124+
Les actions sont souvent asynchrones, donc comment savoir lorsqu'une action est terminée ? Et plus important, comment composer plusieurs actions ensemble pour manipuler des flux asynchrones plus complexes ?
125125

126-
The first thing to know is that `store.dispatch` can handle Promise returned by the triggered action handler and it also returns Promise:
126+
La première chose à savoir est que `store.dispatch` peut gérer la Promesse (« Promise ») retournée par le gestionnaire d'action déclenché et par conséquent vous pouvez également retourner une Promesse :
127127

128128
``` js
129129
actions: {
@@ -138,15 +138,15 @@ actions: {
138138
}
139139
```
140140

141-
Now you can do:
141+
Maintenant vous pouvez faire :
142142

143143
``` js
144144
store.dispatch('actionA').then(() => {
145145
// ...
146146
})
147147
```
148148

149-
And also in another action:
149+
Et également dans une autre action :
150150

151151
``` js
152152
actions: {
@@ -159,20 +159,20 @@ actions: {
159159
}
160160
```
161161

162-
Finally, if we make use of [async / await](https://tc39.github.io/ecmascript-asyncawait/), a JavaScript feature landing very soon, we can compose our actions like this:
162+
Pour finir, nous pouvons utiliser de [async / await](https://tc39.github.io/ecmascript-asyncawait/), une fonctionnalité JavaScript qui sera disponible très bientôt, nous pouvons composer nos actions ainsi :
163163

164164
``` js
165-
// assuming getData() and getOtherData() return Promises
165+
// sachant que `getData()` et `getOtherData()` retournent des Promesses.
166166

167167
actions: {
168168
async actionA ({ commit }) {
169169
commit('gotData', await getData())
170170
},
171171
async actionB ({ dispatch, commit }) {
172-
await dispatch('actionA') // wait for actionA to finish
172+
await dispatch('actionA') // attendre que `actionA` soit finie
173173
commit('gotOtherData', await getOtherData())
174174
}
175175
}
176176
```
177177

178-
> It's possible for a `store.dispatch` to trigger multiple action handlers in different modules. In such a case the returned value will be a Promise that resolves when all triggered handlers have been resolved.
178+
> Il est possible pour un `store.dispatch` de déclencher plusieurs gestionnaires d'action dans différents modules. Dans ce genre de cas, la valeur retournée sera une Promesse qui se résoud quand tous les gestionnaires déclenchés ont été résolus.

0 commit comments

Comments
 (0)