2017-08-18 22 views
0

我有一些異步中間件訪問遠程api並將其分派給Redux。最佳實踐:何時從異步調用中丟棄不需要的數據

我正在訪問一個現有的API,它返回一大塊數據,其中大部分是我不需要的。在數據中丟棄不需要的元素時,是否有任何確定的最佳做法?據我所知,我可以:

1 - 收到時過濾出來,只通過我需要的商店。

2 - 當接收到所有內容並使用選擇器或mapStateToProps提取我需要呈現的內容時,將所有內容存儲在存儲中。

3 - 存儲並提取所有內容,並過濾掉組件中需要的內容。

別人怎麼看?

回答

1

如果您無法將API更改爲使用流或至少分頁之類的內容,請使用選項no。 1.

  • 儘量使用最少量的數據來完成
    工作。這是一條通用規則,不適用於 redux!
  • 儘量讓您的商店儘可能平整。
  • 儘量減少,導致在店裏

隨着中說的改變涉及任何操作的數據,過濾掉所有未使用的數據權當API響應的用武之地。

0

如果」再從API獲取大量的數據是這樣的:

API

"payload": { 
"info": [ ... large ...], 
"meta": [ ... small ...], 
} 

在您的Redux操作中,請務必只使用小數據。例如在減速

減速

function reducer(store, action) { 
    switch (action.payload) { 
    case 'GET_API': 
     store = {...store, meta: action.payload.meta } 
     } 
     break; 
    default: 
     break; 
    } 
    return store 
} 

所以,現在,你不會有那麼大的數據了,一旦API完成,減速將只包含小數據。