0
redux框架/庫中是否存在標準實體模式?Redux中的實體模式?
我是相當新的反應/ redux,我正在建立一個簡單的餅圖應用程序,您可以在其中添加餅圖切片並更改餅圖名稱。 (我使用的是不可變的js庫)
在我減速的代碼看起來真的很討厭和笨重:
switch (action.type) {
case 'CREATE_SLICE':
var myList = imState.getIn(['app', 'pie', 'data'])
myList = myList.toJS();
myList.push(action.slice);
var v = Immutable.fromJS(myList)
imState = imState.setIn(['app', 'pie', 'data'], v)
break;
case 'CHANGE_NAME':
var newName = action.newName;
imState = imState.setIn(['app', 'pie', 'name'], newName)
break;
所以我決定重構爲一個類型的實體類的這樣的:
class PieChart {
static get path() {
return ['app', 'pie'];
}
static createSlice(imState, action) {
var myList = imState.getIn([...this.path, 'data'])
myList = myList.toJS();
myList.push(action);
var v = Immutable.fromJS(myList)
imState = imState.setIn([...this.path, 'data'], v)
return imState;
}
static changeName(imState, newName) {
imState = imState.setIn([...this.path, 'name'], newName)
return imState;
}
}
這個類不包含狀態。它只獲取通過函數傳遞給它的狀態對象。
路徑函數包含狀態對象中的路徑,該路徑與該類所關注的實體相關。
我的問題是,這是一種常見的模式?這是封裝實體數據還是功能的適當方式?
你的重構如何完全取決於你。只要這些方法中的每一個都是純粹的方法,那並不重要。我個人認爲創建一個班級沒有任何好處。但是創建函數不是問題。 –
^我第二個Callum。如果你的類只有靜態方法,爲什麼不把它們作爲獨立的實用程序函數導出?現在轉到您的問題 - 是的,有一個小的實體庫來分析數據會很有用。但我不知道任何標準庫,因爲來自後端的數據差別很大。 – Mihir