我是React + Redux + Immutable js的新手,我使用toJS()将我的不可变数据结构转换为原生javascript格式。但最近我用这条推文发现了这个问题
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()
}
};
答案 0 :(得分:13)
据我所知the documentation:
toJSON()
返回不可变对象的浅层复制版本(不是JSON 字符串,尽管名称可能另有建议),这只应该用于传递给{ {1}}(换言之:您不应将其用作代码中的常规对象)。
JSON.stringify()
返回不可变对象的深度复制版本,您可以随后在代码中使用/修改该版本。因为它是一个深度复制的版本,所以它的生成成本更高。