2016-08-01 28 views
2

Ich arbeite an einem ziemlich großen Projekt, und ich möchte Vuex Module in so viele Teile wie möglich zu brechen. Zum Beispiel möchte ich die API Funktionalität von UI trennen, halten Sie die Daten, die von dem Server isoliert von der Komponente Flags und so kommt.Granular Organisation mit Vuex

In der Dokumentation (http://vuex.vuejs.org/en/structure.html) schlagen die Autoren vor, alles in modules zu brechen, was großartig ist. Das Problem kommt, wenn ich, sagen wir, products als eine Seite und products als Daten habe, und ich möchte sie getrennt halten.

Ist es möglich, so etwas zu erreichen:

{ 
    modules: { 
    api: { 
     products: // ... 
    }, 
    pages: { 
     products: // ... 
    } 
    } 
} 

und in der Lage sein, auf sie zuzugreifen wie store.api.products und store.pages.products? Komme ich falsch?

Danke!

Antwort

3

Ich habe am vuex Code ein Blick, und ich habe dies gefunden:

// retrieve nested modules 
const nestedMutations = this._createModuleMutations(module.modules, newNestedKeys) 

Es stellt sich heraus, dass Sie tatsächlich Ihre vuex Module, indem Sie körnig machen:

{ 
    modules: { 
    api: { 
     modules: { 
     products: /* ... */ 
     } 
    }, 
    components: { 
     modules: { 
     page: /* ... */ 
     } 
    } 
    } 
} 

Und es wird zu einer Zustandsstruktur wie:

Vuex State screenshot

führen 0
+0

Es gibt eine Diskussion um das Thema hier: http://forum.vuejs.org/topic/4791/granular-organisation-with-vuex –