哪个是不可变的js中最好的.toJS()和.toJSON()?

时间:2017-06-29 17:14:24

标签: javascript reactjs redux immutable.js

我是React + Redux + Immutable js的新手,我使用toJS()将我的不可变数据结构转换为原生javascript格式。但最近我用这条推文发现了这个问题

Author of Immutable.Js

Tweet说.toJS()非常昂贵所以我可以使用toJSON() https://facebook.github.io/immutable-js/docs/#/List/toJSON是否可以使用性能问题

更新

for i in range(len(list)-1):
    if (list[i+1]-list[i]) > 50:
        new_list.append(list[i])
if list[-1] - new_list[-1] > 50:
    new_list.append(list[-1]) #for the last element of list

请用我自己的Reducer

提供一些示例

如何在不使用to.js()

的情况下迭代const initialState = fromJS({ postArr:[] }); const mapStateToProps = (state) => { return{ posts:state.allPosts.toJS() } };

1 个答案:

答案 0 :(得分:13)

据我所知the documentation

  • toJSON()返回不可变对象的浅层复制版本(不是JSON 字符串,尽管名称可能另有建议),这只应该用于传递给{ {1}}(换言之:您不应将其用作代码中的常规对象)。

  • JSON.stringify()返回不可变对象的深度复制版本,您可以随后在代码中使用/修改该版本。因为它是一个深度复制的版本,所以它的生成成本更高。