Skip to content

Commit 2ec05fd

Browse files
committed
Merge branch 'working' into api
# Conflicts: # docs/en/SUMMARY.md Signed-off-by: Bruno Lesieur <[email protected]>
2 parents 82111eb + e8ead88 commit 2ec05fd

File tree

5 files changed

+62
-63
lines changed

5 files changed

+62
-63
lines changed

docs/en/SUMMARY.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
- [Structure d'une application](structure.md)
1919
- [Plugins](plugins.md)
2020
- [Strict Mode](strict.md)
21-
- [Formulaires](forms.md)
21+
- [Gestion des formulaires](forms.md)
2222
- [Tests](testing.md)
23-
- [Hot Reloading](hot-reload.md)
23+
- [Rechargement à chaud](hot-reload.md)
2424
- [Documentation de l'API](api.md)

docs/en/book.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"pluginsConfig": {
55
"edit-link": {
66
"base": "https://github.com/vuejs/vuex/tree/dev/docs",
7-
"label": "Edit This Page"
7+
"label": "Éditer cette page"
88
},
99
"github": {
1010
"url": "https://github.com/vuejs/vuex/"

docs/en/forms.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
# Form Handling
1+
# Gestion des formulaires
22

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 :
44

55
``` html
66
<input v-model="obj.message">
77
```
88

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.
1010

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` :
1212

1313
``` html
1414
<input :value="message" @input="updateMessage">
@@ -27,7 +27,7 @@ methods: {
2727
}
2828
```
2929

30-
And here's the mutation handler:
30+
Et voici le gestionnaire de mutation :
3131

3232
``` js
3333
// ...
@@ -38,9 +38,9 @@ mutations: {
3838
}
3939
```
4040

41-
### Two-way Computed Property
41+
### Propriété calculée bidirectionnelle
4242

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 :
4444

4545
``` html
4646
<input v-model="message">
@@ -58,4 +58,3 @@ computed: {
5858
}
5959
}
6060
```
61-

docs/en/hot-reload.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# Hot Reloading
1+
# Rechargement à chaud
22

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/).
44

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()` :
66

77
``` js
88
// store.js
@@ -24,13 +24,13 @@ const store = new Vuex.Store({
2424
})
2525

2626
if (module.hot) {
27-
// accept actions and mutations as hot modules
27+
// accepter les actions et mutations en tant que module à chaud
2828
module.hot.accept(['./mutations', './modules/a'], () => {
29-
// require the updated modules
30-
// have to add .default here due to babel 6 module output
29+
// requiert les modules à jour
30+
// ajout de `.default` ici pour les sorties des modules babel 6
3131
const newMutations = require('./mutations').default
3232
const newModuleA = require('./modules/a').default
33-
// swap in the new actions and mutations
33+
// remplacer les nouvelles actions et mutations
3434
store.hotUpdate({
3535
mutations: newMutations,
3636
modules: {
@@ -41,4 +41,4 @@ if (module.hot) {
4141
}
4242
```
4343

44-
Checkout the [counter-hot example](https://github.com/vuejs/vuex/tree/dev/examples/counter-hot) to play with hot-reload.
44+
Jetez un œil à [l'exemple counter-hot](https://github.com/vuejs/vuex/tree/dev/examples/counter-hot) pour jouer avec du rechargement à chaud.

docs/en/testing.md

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
# Testing
1+
# Tests
22

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.
44

5-
### Testing Mutations
5+
### Tester les mutations
66

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é :
88

99
``` js
1010
const state = { ... }
1111

12-
// export mutations as a named export
12+
// exporter les mutations en tant qu'export nommé
1313
export const mutations = { ... }
1414

1515
export default new Vuex.Store({
@@ -18,7 +18,7 @@ export default new Vuex.Store({
1818
})
1919
```
2020

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) :
2222

2323
``` js
2424
// mutations.js
@@ -32,26 +32,26 @@ export const mutations = {
3232
import { expect } from 'chai'
3333
import { mutations } from './store'
3434

35-
// destructure assign mutations
35+
// assignement des mutations par déstructuration
3636
const { increment } = mutations
3737

3838
describe('mutations', () => {
3939
it('INCREMENT', () => {
40-
// mock state
40+
// état simulé
4141
const state = { count: 0 }
42-
// apply mutation
42+
// appliquer la mutation
4343
increment(state)
44-
// assert result
44+
// tester le résultat
4545
expect(state.count).to.equal(1)
4646
})
4747
})
4848
```
4949

50-
### Testing Actions
50+
### Tester les actions
5151

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.
5353

54-
Example testing an async action:
54+
Exemple de test d'une action asynchrone :
5555

5656
``` js
5757
// actions.js
@@ -68,28 +68,28 @@ export const getAllProducts = ({ commit }) => {
6868
``` js
6969
// actions.spec.js
7070

71-
// use require syntax for inline loaders.
72-
// with inject-loader, this returns a module factory
73-
// that allows us to inject mocked dependencies.
71+
// utilisation de la syntaxe `require` pour les loaders.
72+
// avec inject-loader, cela retourne un module de fabrique
73+
// cela nous permet d'injecter les dépendances simulées.
7474
import { expect } from 'chai'
7575
const actionsInjector = require('inject!./actions')
7676

77-
// create the module with our mocks
77+
// créer un module avec nos simulations
7878
const actions = actionsInjector({
7979
'../api/shop': {
8080
getProducts (cb) {
8181
setTimeout(() => {
82-
cb([ /* mocked response */ ])
82+
cb([ /* réponse simulée */ ])
8383
}, 100)
8484
}
8585
}
8686
})
8787

88-
// helper for testing action with expected mutations
89-
const testAction = (action, payload, state, expectedMutations, done) => {
88+
// fonction utilitaire pour tester des actions avec les mutations attendues
89+
const testAction = (action, args, state, expectedMutations, done) => {
9090
let count = 0
9191

92-
// mock commit
92+
// acter une simulation
9393
const commit = (type, payload) => {
9494
const mutation = expectedMutations[count]
9595

@@ -108,10 +108,10 @@ const testAction = (action, payload, state, expectedMutations, done) => {
108108
}
109109
}
110110

111-
// call the action with mocked store and arguments
112-
action({ commit, state }, payload)
111+
// appeler l'action avec le store simulé et les arguments
112+
action({ commit, state }, ...args)
113113

114-
// check if no mutations should have been dispatched
114+
// vérifier qu'aucune mutations n'ai été propagée
115115
if (expectedMutations.length === 0) {
116116
expect(count).to.equal(0)
117117
done()
@@ -120,19 +120,19 @@ const testAction = (action, payload, state, expectedMutations, done) => {
120120

121121
describe('actions', () => {
122122
it('getAllProducts', done => {
123-
testAction(actions.getAllProducts, null, {}, [
123+
testAction(actions.getAllProducts, [], {}, [
124124
{ type: 'REQUEST_PRODUCTS' },
125125
{ type: 'RECEIVE_PRODUCTS', payload: { /* mocked response */ } }
126126
], done)
127127
})
128128
})
129129
```
130130

131-
### Testing Getters
131+
### Tester les accesseurs
132132

133-
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.
134134

135-
Example testing a getter:
135+
Exemple de test d'un accesseur :
136136

137137
``` js
138138
// getters.js
@@ -152,21 +152,21 @@ import { getters } from './getters'
152152

153153
describe('getters', () => {
154154
it('filteredProducts', () => {
155-
// mock state
155+
// état simulé
156156
const state = {
157157
products: [
158158
{ id: 1, title: 'Apple', category: 'fruit' },
159159
{ id: 2, title: 'Orange', category: 'fruit' },
160160
{ id: 3, title: 'Carrot', category: 'vegetable' }
161161
]
162162
}
163-
// mock getter
163+
// accesseur simulé
164164
const filterCategory = 'fruit'
165165

166-
// get the result from the getter
166+
// obterir le résultat depuis l'accesseur
167167
const result = getters.filteredProducts(state, { filterCategory })
168168

169-
// assert the result
169+
// tester le résultat
170170
expect(result).to.deep.equal([
171171
{ id: 1, title: 'Apple', category: 'fruit' },
172172
{ id: 2, title: 'Orange', category: 'fruit' }
@@ -175,13 +175,13 @@ describe('getters', () => {
175175
})
176176
```
177177

178-
### Running Tests
178+
### Lancer les tests
179179

180-
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.
181181

182-
#### Running in Node
182+
#### Lancer dans Node.js
183183

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) :
185185

186186
``` js
187187
// webpack.config.js
@@ -203,20 +203,20 @@ module.exports = {
203203
}
204204
```
205205

206-
Then:
206+
Puis :
207207

208208
``` bash
209209
webpack
210210
mocha test-bundle.js
211211
```
212212

213-
#### Running in Browser
213+
#### Lancer dans un navigateur
214214

215-
1. Install `mocha-loader`
216-
2. Change the `entry` from the webpack config above to `'mocha!babel!./test.js'`.
217-
3. Start `webpack-dev-server` using the config
218-
4. Go to `localhost:8080/webpack-dev-server/test-bundle`.
215+
1. Installez `mocha-loader`.
216+
2. Changez l'option `entry` de la configuration webpack ci-dessus pour `'mocha!babel!./test.js'`.
217+
3. Démarrez `webpack-dev-server` en utilisant cette configuration.
218+
4. Rendez-vous avec votre navigateur sur `localhost:8080/webpack-dev-server/test-bundle`.
219219

220-
#### Running in Browser with Karma + karma-webpack
220+
#### Lancer dans un navigateur avec Karma + karma-webpack
221221

222-
Consult the setup in [vue-loader documentation](http://vue-loader.vuejs.org/en/workflow/testing.html).
222+
Consultez la procédure sur la [documentation vue-loader](http://vue-loader.vuejs.org/en/workflow/testing.html).

0 commit comments

Comments
 (0)