소스 검색

allow partially hot reload modules

Evan You 9 년 전
부모
커밋
a85c19ae0b
1개의 변경된 파일7개의 추가작업 그리고 4개의 파일을 삭제
  1. 7 4
      src/index.js

+ 7 - 4
src/index.js

@@ -133,7 +133,7 @@ class Store {
   }
 
   /**
-   * Hot update actions and mutations.
+   * Hot update mutations & modules.
    *
    * @param {Object} options
    *        - {Object} [mutations]
@@ -163,13 +163,16 @@ class Store {
    * Bind mutations for each module to its sub tree and
    * merge them all into one final mutations map.
    *
-   * @param {Object} modules
+   * @param {Object} updatedModules
    */
 
-  _setupModuleMutations (modules) {
-    this._modules = modules
+  _setupModuleMutations (updatedModules) {
+    const modules = this._modules
     const { getPath } = Vue.parsers.path
     const allMutations = [this._rootMutations]
+    Object.keys(updatedModules).forEach(key => {
+      modules[key] = updatedModules[key]
+    })
     Object.keys(modules).forEach(key => {
       const module = modules[key]
       if (!module || !module.mutations) return