我正在從事一個大型的react/redux項目,我正在努力尋找react/redux的最佳實踐。React + Redux,我的與UI相關的計算應該放在哪裏,容器組件還是reducer?
例如,如果我有一個餅圖部件,這將需要一個簡單的數組作爲支柱:
[{
label: 'a',
value: 10
}, {
label: 'b',
value: 6
}, ...]
但源數據I從API服務器獲取可以是這樣的:
{
a: {
value1: 15,
value2: 3,
value3: 7,
...
},
b: { ... }
}
現在我必須做一些計算,得到的結果數據(如值1 -value2 +值3 ...也許一些過濾器...),問題是,我應該把這個計算在減速(我覺得它更像一個吸氣,這將經由connect
道具到組件被傳遞,如getCartProducts
in this example)或容器組件(可以是控制板在這種情況下)?
我覺得這兩個選項意義:
在減速:我們能夠保持我們的組件乾淨,並把所有的邏輯在同一個地方。
在容器中:因爲它與用戶界面相關,並且如果計算的數據不可重複使用(僅適用於該餅圖),我們可以在相關組件中保留這種計算。
如果我選擇減速器,那麼會出現另一個問題。我應該將計算的數據保存在商店中嗎?或者只保存源數據,並在每次渲染組件時計算它? The old React doc表示你不應該保存計算數據的狀態,不知道是否對於redux是真的。