将大请求保留在redux状态
我使用将大请求保留在redux状态,redux,immutable.js,Redux,Immutable.js,我使用immutable.js来保持我的应用程序状态。它由多个组合还原器组成,它们是不可变的映射,如: const initialState = new Map({ data: null, page: 1, ... }); 因此,每当网页上的内容发生变化时,我需要获取、保存某个位置、从中获取数据并更新状态 问题是-在redux中,我在哪里保存原始请求响应? 比方说,我想把它留在州里。我尝试了以下方法: case FETCH_RESPONSE: return state
immutable.js
来保持我的应用程序状态。它由多个组合还原器组成,它们是不可变的映射,如:
const initialState = new Map({
data: null,
page: 1,
...
});
因此,每当网页上的内容发生变化时,我需要获取、保存某个位置、从中获取数据并更新状态
问题是-在redux中,我在哪里保存原始请求响应?
比方说,我想把它留在州里。我尝试了以下方法:
case FETCH_RESPONSE:
return state.merge({
rawRequestResponse: action.response // very slow, deep conversion to Immutable
})
case FETCH_RESPONSE:
return state.set({
rawRequestResponse: action.response // also slow, it's converted to Immutable, though not deeply
})
case FETCH_RESPONSE:
return new Map({
rawRequestResponse: action.response, // just like above
...
})
但是他们都太慢了。最好的方法是什么?不确定是否将普通对象传递给
set()
,但如果将键作为字符串传递,则将值作为第二个参数,则不应转换任何内容:
return state.set('rawRequestResponse', action.response)
原始请求真的是你所在州所需要的一部分吗?重新考虑它是否真的需要住在redux商店里。到底有多大?如果您正在处理大量的集合,则考虑向API添加分页并缓存客户端上的集合实体。