File tree 2 files changed +61
-1
lines changed
2 files changed +61
-1
lines changed Original file line number Diff line number Diff line change @@ -234,7 +234,20 @@ const store = new Vuex.Store({ ...options })
234
234
})
235
235
` ` `
236
236
237
- プラグインで最も一般的に使用されます。[詳細](../ guide/ plugins .md )
237
+ > 3.4 .0 で新規追加
238
+
239
+ 3.4 .0 から、` subscribeAction` に ` error` ハンドラが追加されました。このハンドラでは、アクションディスパッチの中で投げられたエラーをキャッチすることができます。` error` ハンドラは投げられた ` error` オブジェクトを第3 引数として受け取ります。
240
+
241
+ ` ` ` js
242
+ store.subscribeAction({
243
+ error: (action, state, error) => {
244
+ console.log(` error action ${action .type }` )
245
+ console.error(error)
246
+ }
247
+ })
248
+ ` ` `
249
+
250
+ ` subscribeAction` メソッドはプラグインで最も一般的に使用されます。[詳細](../ guide/ plugins .md )
238
251
239
252
### registerModule
240
253
Original file line number Diff line number Diff line change @@ -42,3 +42,50 @@ if (module.hot) {
42
42
```
43
43
44
44
ホットリローディングを試したい場合は、[ counter-hot example] ( https://github.com/vuejs/vuex/tree/dev/examples/counter-hot ) をチェックアウトしてください。
45
+
46
+ ## 動的モジュールホットリローディング
47
+
48
+ もしストアでモジュールだけを使用している場合には、` require.context ` を使って全てのモジュールを動的に読み込むこともできます。
49
+
50
+ ``` js
51
+ // store.js
52
+ import Vue from ' vue'
53
+ import Vuex from ' vuex'
54
+
55
+ // 全てのモジュールをロードする
56
+ function loadModules () {
57
+ const context = require .context (" ./modules" , false , / ([a-z _] + )\. js$ / i )
58
+
59
+ const modules = context
60
+ .keys ()
61
+ .map ((key ) => ({ key, name: key .match (/ ([a-z _] + )\. js$ / i )[1 ] }))
62
+ .reduce (
63
+ (modules , { key, name }) => ({
64
+ ... modules,
65
+ [name]: context (key).default
66
+ }),
67
+ {}
68
+ )
69
+
70
+ return { context, modules }
71
+ }
72
+
73
+ const { context , modules } = loadModules ()
74
+
75
+ Vue .use (Vuex)
76
+
77
+ const store = new Vuex.Store ({
78
+ modules
79
+ })
80
+
81
+ if (module .hot ) {
82
+ // モジュールに変更があった場合にホットリロードする
83
+ module .hot .accept (context .id , () => {
84
+ const { modules } = loadModules ()
85
+
86
+ store .hotUpdate ({
87
+ modules
88
+ })
89
+ })
90
+ }
91
+ ```
You can’t perform that action at this time.
0 commit comments