2017-03-22 53 views
4

我試圖做一個相當大的,可擴展的應用程序,我被告知最好的做法是讓一個存儲當前全局狀態的單個存儲(包括臨時/重載加載和會話級加載)持久數據),即使它被分成多個模塊。爲什麼ngrx/store示例應用程序使用多個商店? (如何設計商店)

現在我想知道爲什麼您可以在ngrx/store-website上找到的example app of the ngrx/store使用多個商店;每個減速機有這樣的一個自己的一段代碼:

export interface State { 
    ids: string[]; 
    entities: { [id: string]: Book }; 
    selectedBookId: string | null; 
}; 

export const initialState: State = { 
    ids: [], 
    entities: {}, 
    selectedBookId: null, 
}; 

那麼,爲什麼官方指導不使用單店所推薦的大多數人?或者,只要所有減速器屬於一個模塊,它就被視爲單一商店?如果不是,我如何實施一個單一的中央商店?我的想法是使用Store通用並將它們的變體放入表中。另一種選擇是讓一個JS對象的屬性由reducer動作更新。無論哪種方式,你必須在表或對象中有一些結構。有沒有這方面的最佳做法?你知道更好的示例應用程序嗎?

+4

上面的回購使用單店。請參閱'src/app/redurs/index.ts' – yurzui

+0

我以爲一個國家是商店?! – Phil

回答

6

示例應用程序正在使用單個商店。在這種情況下,狀態是reducer的接口。您可以在一家商店購買許多減速器。

使用單一商店被認爲是最佳實踐。對於幾乎所有的中小型應用程序,單一商店都應該足夠了。

有一個用NGRX商店重新創建的Angular Tour of Heroes應用程序的很好的例子。你可以在這裏找到它: http://bodiddlie.github.io/ng-2-toh-with-ngrx-suite/

+0

對於大型應用程序如何。我需要創建多個商店 –