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: docs/en/forms.md
+7-8Lines changed: 7 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,14 @@
1
-
# Form Handling
1
+
# Gestion des formulaires
2
2
3
-
When using Vuex in strict mode, it could be a bit tricky to use `v-model`on a piece of state that belongs to Vuex:
3
+
Lorsque l'on utilise Vuex en mode strict, il peut être compliqué d'utiliser `v-model`sur une partie de l'état qui appartient à Vuex:
4
4
5
5
```html
6
6
<inputv-model="obj.message">
7
7
```
8
8
9
-
Assuming `obj`is a computed property that returns an Object from the store, the`v-model`here will attempt to directly mutate `obj.message`when the user types in the input. In strict mode, this will result in an error because the mutation is not performed inside an explicit Vuex mutation handler.
9
+
Supposons que `obj`est une propriété calculée qui retourne un objet depuis le store, le`v-model`tentera de muter directement `obj.message`lorsque l'utilisateur saisit du texte dans le champ. En mode strict, cela produira une erreur car la mutation n'est pas effectuée dans un gestionnaire de mutation Vuex explicite.
10
10
11
-
The "Vuex way" to deal with it is binding the `<input>`'s value and call an action on the`input`or`change`event:
11
+
La « méthode Vuex » pour gérer ça est de lier la valeur de l'`input` et d'appeler une action sur l'évènement`input`ou`change` :
12
12
13
13
```html
14
14
<input:value="message"@input="updateMessage">
@@ -27,7 +27,7 @@ methods: {
27
27
}
28
28
```
29
29
30
-
And here's the mutation handler:
30
+
Et voici le gestionnaire de mutation :
31
31
32
32
```js
33
33
// ...
@@ -38,9 +38,9 @@ mutations: {
38
38
}
39
39
```
40
40
41
-
### Two-way Computed Property
41
+
### Propriété calculée bidirectionnelle
42
42
43
-
Admittedly, the above is quite a bit more verbose than `v-model`+ local state, and we lose some of the useful features from `v-model`as well. An alternative approach is using a two-way computed property with a setter:
43
+
Admettons tout de même que l'exemple ci-dessus est plus verbeux que le `v-model`couplé à l'état local (tout en perdant quelques fonctionnalités pratiques de `v-model`au passage). Une approche alternative consiste à utiliser une propriété calculée bidirectionnelle avec un mutateur :
Copy file name to clipboardExpand all lines: docs/en/hot-reload.md
+8-8Lines changed: 8 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
-
# Hot Reloading
1
+
# Rechargement à chaud
2
2
3
-
Vuex supports hot-reloading mutations, modules, actions and getters during development, using webpack's [Hot Module Replacement API](https://webpack.github.io/docs/hot-module-replacement.html). You can also use it in Browserify with the [browserify-hmr](https://github.com/AgentME/browserify-hmr/) plugin.
3
+
Vuex prend en charge le rechargement à chaud des mutations, modules, actions et accesseurs durant le développement, en utilisant l'[API du module de remplacement à chaud](https://webpack.github.io/docs/hot-module-replacement.html) de webpack. Vous pouvez également utiliser Browserify avec le plugin [browserify-hmr](https://github.com/AgentME/browserify-hmr/).
4
4
5
-
For mutations and modules, you need to use the `store.hotUpdate()`API method:
5
+
Pour les mutations et les modules, vous aurez besoin d'utiliser la méthode d'API `store.hotUpdate()` :
6
6
7
7
```js
8
8
// store.js
@@ -24,13 +24,13 @@ const store = new Vuex.Store({
24
24
})
25
25
26
26
if (module.hot) {
27
-
//accept actions and mutations as hot modules
27
+
//accepter les actions et mutations en tant que module à chaud
Copy file name to clipboardExpand all lines: docs/en/testing.md
+44-44Lines changed: 44 additions & 44 deletions
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,15 @@
1
-
# Testing
1
+
# Tests
2
2
3
-
The main parts we want to unit test in Vuex are mutations and actions.
3
+
Les parties principales que l'on veut couvrir par des tests unitaires avec Vuex sont les mutations et les actions.
4
4
5
-
### Testing Mutations
5
+
### Tester les mutations
6
6
7
-
Mutations are very straightforward to test, because they are just functions that completely rely on their arguments. One trick is that if you are using ES2015 modules and put your mutations inside your `store.js` file, in addition to the default export, you can also export the mutations as a named export:
7
+
Les mutations sont très simples à tester, puisque ce sont de simples fonctions qui se basent uniquement sur leurs arguments. Une astuce est que si vous utilisez les modules ES2015 et mettez vos mutations dans votre fichier `store.js`, en plus de l'export par défaut, vous pouvez également exporter vos mutations avec un export nommé :
8
8
9
9
```js
10
10
conststate= { ... }
11
11
12
-
//export mutations as a named export
12
+
//exporter les mutations en tant qu'export nommé
13
13
exportconstmutations= { ... }
14
14
15
15
exportdefaultnewVuex.Store({
@@ -18,7 +18,7 @@ export default new Vuex.Store({
18
18
})
19
19
```
20
20
21
-
Example testing a mutation using Mocha + Chai (you can use any framework/assertion libraries you like):
21
+
Exemple de test de mutation utilisant Mocha + Chai (vous pouvez utiliser n'importe quel framework/bibliothèque d'assertion selon vos préférences) :
22
22
23
23
```js
24
24
// mutations.js
@@ -32,26 +32,26 @@ export const mutations = {
32
32
import { expect } from'chai'
33
33
import { mutations } from'./store'
34
34
35
-
//destructure assign mutations
35
+
//assignement des mutations par déstructuration
36
36
const { increment } = mutations
37
37
38
38
describe('mutations', () => {
39
39
it('INCREMENT', () => {
40
-
//mock state
40
+
//état simulé
41
41
conststate= { count:0 }
42
-
//apply mutation
42
+
//appliquer la mutation
43
43
increment(state)
44
-
//assert result
44
+
//tester le résultat
45
45
expect(state.count).to.equal(1)
46
46
})
47
47
})
48
48
```
49
49
50
-
### Testing Actions
50
+
### Tester les actions
51
51
52
-
Actions can be a bit more tricky because they may call out to external APIs. When testing actions, we usually need to do some level of mocking - for example, we can abstract the API calls into a service and mock that service inside our tests. In order to easily mock dependencies, we can use webpack and[inject-loader](https://github.com/plasticine/inject-loader)to bundle our test files.
52
+
Les actions sont un peu plus compliquées car elles peuvent faire appel à des APIs externes. Lorsque l'on teste des actions, on a souvent besoin de faire plusieurs niveaux de simulation. Par exemple, on peut abstraire l'appel API dans un service et simuler ce service dans nos tests. Afin de simuler facilement les dépendances, on peut utiliser webpack et[inject-loader](https://github.com/plasticine/inject-loader)pour regrouper nos fichiers de test.
If your getters have complicated computation, it is worth testing them. Getters are also very straightforward to test as same reason as mutations.
133
+
Si vos accesseurs font des calculs compliqués, il peut être judicieux de les tester. Les accesseurs sont également très simples à tester, pour les mêmes raisons que les mutations.
134
134
135
-
Example testing a getter:
135
+
Exemple de test d'un accesseur :
136
136
137
137
```js
138
138
// getters.js
@@ -152,21 +152,21 @@ import { getters } from './getters'
If your mutations and actions are written properly, the tests should have no direct dependency on Browser APIs after proper mocking. Thus you can simply bundle the tests with webpack and run it directly in Node. Alternatively, you can use`mocha-loader`or Karma + `karma-webpack`to run the tests in real browsers.
180
+
Si vos mutations et actions sont écrites comme il se doit, les tests ne devraient pas avoir de dépendance directe sur les APIs navigateur après une simulation préalable. Cela signifie que vous pouvez simplement regrouper les tests avec webpack et les lancer directement dans Node.js. De façon alternative, vous pouvez utiliser`mocha-loader`ou Karma + `karma-webpack`afin d'effectuer les tests dans des vrais navigateurs.
181
181
182
-
#### Running in Node
182
+
#### Lancer dans Node.js
183
183
184
-
Create the following webpack config (together with proper [`.babelrc`](https://babeljs.io/docs/usage/babelrc/)):
184
+
Créez la configuration webpack suivante (ainsi que le fichier [`.babelrc`](https://babeljs.io/docs/usage/babelrc/) qui correspond) :
185
185
186
186
```js
187
187
// webpack.config.js
@@ -203,20 +203,20 @@ module.exports = {
203
203
}
204
204
```
205
205
206
-
Then:
206
+
Puis :
207
207
208
208
```bash
209
209
webpack
210
210
mocha test-bundle.js
211
211
```
212
212
213
-
#### Running in Browser
213
+
#### Lancer dans un navigateur
214
214
215
-
1.Install`mocha-loader`
216
-
2.Change the`entry`from the webpack config above to`'mocha!babel!./test.js'`.
0 commit comments