Javascript 在与服务器通信时,将Immutable.js对象与JSON进行转换是否常见

Javascript 在与服务器通信时,将Immutable.js对象与JSON进行转换是否常见,javascript,redux,immutable.js,Javascript,Redux,Immutable.js,我是Redux新手,尝试使用Immutable.js对象作为我的存储。我发现自己不可避免地要做一些事情,比如在处理从服务器获取的数据时,使用fromJS将JSON转换为不可变,然后将其转换回JSON以发布到服务器。不管潜在的性能成本如何,这是正确的方法吗?你所说的听起来很合理。使用Redux时的典型场景是,在thunk中间件中执行服务器请求,然后使用从服务器收到的数据发送操作。然后可以将数据转换为Immutable.js,并将其添加到还原程序中的状态 简短的伪代码示例: // Component

我是Redux新手,尝试使用Immutable.js对象作为我的存储。我发现自己不可避免地要做一些事情,比如在处理从服务器获取的数据时,使用fromJS将JSON转换为不可变,然后将其转换回JSON以发布到服务器。不管潜在的性能成本如何,这是正确的方法吗?

你所说的听起来很合理。使用Redux时的典型场景是,在thunk中间件中执行服务器请求,然后使用从服务器收到的数据发送操作。然后可以将数据转换为Immutable.js,并将其添加到还原程序中的状态

简短的伪代码示例:

// 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;
    }
}

你说的话听起来很有道理。使用Redux时的典型场景是,在thunk中间件中执行服务器请求,然后使用从服务器收到的数据发送操作。然后可以将数据转换为Immutable.js,并将其添加到还原程序中的状态

简短的伪代码示例:

// 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;
    }
}

可能的替代方案是什么?如果不是
JSON
,在网络上传输
JavaScript
对象时,您将如何表示该对象?潜在的性能成本是多少?你测量了吗?可能的替代方案是什么?如果不是
JSON
,在网络上传输
JavaScript
对象时,您将如何表示该对象?潜在的性能成本是多少?你测量了吗?非常有用的例子。我希望官方文档会提供一些类似这样的代码片段,因为它建议将Immutable作为一个好方法choice@mylostlenore如果这有帮助的话,你能把它指定为可接受的答案吗?非常有用的例子。我希望官方文档会提供一些类似这样的代码片段,因为它建议将Immutable作为一个好方法choice@mylostlenore如果这有帮助的话,你能把它指定为可接受的答案吗。