我是Redux的新手,并尝试使用Immutable.js对象作为我的商店。我发现自己在处理从服务器获取的数据时将JSON转换为Immutable与 fromJS ,并将其转换回JSON以发布到服务器,这样做不可避免。无论潜在的性能成本如何,这都是正确的方法吗?
答案 0 :(得分:0)
你说的话听起来很合理。典型情况是使用Redux时,您在thunk中间件中执行服务器请求,然后使用从服务器收到的数据调度操作。然后,您可以将数据转换为immutablejs并将其添加到reducers中的状态。
简短的sudo代码示例:
// Component somewhere
state.dispatch(fetchData());
// Actions
function fetchData() {
function (dispatch, getState) {
// Use something to fetch from server
dispatch({ type: 'FETCH_REQUEST' })
return fetch('/path/to/server')
.then(function (data) {
dispatch({ type: 'FETCH_SUCCESS', data: data })
})
}
}
// Reducer
function reducer(state=Map(), action) {
switch(action.type) {
case 'FETCH_SUCCESS':
// Could also take just a part of the data.
// Could also create things like List, Map
// for specific parts of the data.
return fromJS(action.data)
default:
return state;
}
}