在与服务器通信时将Immutable.js对象转换为JSON和从JSON转换是很常见的

时间:2016-11-22 16:32:22

标签: javascript redux immutable.js

我是Redux的新手,并尝试使用Immutable.js对象作为我的商店。我发现自己在处理从服务器获取的数据时将JSON转换为Immutable与 fromJS ,并将其转换回JSON以发布到服务器,这样做不可避免。无论潜在的性能成本如何,这都是正确的方法吗?

1 个答案:

答案 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;
    }
}