我的應用程序中有一些狀態來自服務器,並且不會改變(在用戶會話的生命週期中)。該狀態在HTML中引導。我應該在商店中存儲永不改變(自舉)數據嗎?
我應該將它作爲商店的一部分併入減速機嗎? const bootstrappedData = (state, action) => state
或者我應該公開一些像bootstrappedData.get('key')
這樣的全球幫手嗎?
我的應用程序中有一些狀態來自服務器,並且不會改變(在用戶會話的生命週期中)。該狀態在HTML中引導。我應該在商店中存儲永不改變(自舉)數據嗎?
我應該將它作爲商店的一部分併入減速機嗎? const bootstrappedData = (state, action) => state
或者我應該公開一些像bootstrappedData.get('key')
這樣的全球幫手嗎?
有趣的是,我昨天剛剛在我自己的商店中發佈了關於數據的相同決定。我得出的結論是,我們只應將有狀態的數據存儲在Redux存儲中,即能夠維護狀態的數據或可能發生更改的數據。靜態數據根據定義沒有狀態,因此不需要像這樣跟蹤。
因此,我通常有一個/common/app-const.js
文件,我在這裏存儲這些類型的靜態對象。例如,我在這裏存儲了Redux的DEFAULT_STATE
,但也存儲了其他一些不會更改的對象(因此不會在Redux中進行跟蹤)。
現在,讓我們說其實我是想允許最終用戶操縱numRows
和numCols
在UI,以及在這一點上我一定會需要把這些在終極版商店,但不是現在,因爲他們只是靜態的常量!
/common/app-const.js
export const DEFAULT_STATE = {
model: {},
timer: {
isRunning: false,
ticks: 0
}
};
export const GRID_DATA = {
numRows: 50,
numCols: 75,
};
每當我需要這個靜態的數據,這是作爲一個導入一樣容易:
import { GRID_DATA } from '../common/app-const';
略與此相關的問題是異步(不是自舉),而是靜態數據,因此,存儲數據到存儲區域與存儲區域之外是有折衷的。
店內
的觀光
console.log
缺點
商店
外PROS
缺點
我做了一個大型的生產應用了前一種方式,並且將多回想起來,已經完成了後者。