Javascript 在不可变js中.toJS()和.toJSON()哪一个最好?
我是React+Redux+Immutable js的新手,我正在使用toJS()将我的不可变数据结构转换为原生javascript形式 Tweet说.toJS()非常昂贵,所以我可以使用toJSON()吗 性能问题可以吗 更新Javascript 在不可变js中.toJS()和.toJSON()哪一个最好?,javascript,reactjs,redux,immutable.js,Javascript,Reactjs,Redux,Immutable.js,我是React+Redux+Immutable js的新手,我正在使用toJS()将我的不可变数据结构转换为原生javascript形式 Tweet说.toJS()非常昂贵,所以我可以使用toJSON()吗 性能问题可以吗 更新 const initialState = fromJS({ postArr:[] }); const mapStateToProps = (state) => { return{ posts:state.a
const initialState = fromJS({
postArr:[]
});
const mapStateToProps = (state) => {
return{
posts:state.allPosts.toJS()
}
};
请提供一些例子与我自己的减速机
我如何在不使用to.js()的情况下迭代
这个.props.posts
,从以下几方面了解:
返回不可变对象的粗略复制版本(不是JSON字符串,尽管名称可能会有所不同),它只应用于传递给toJSON()
JSON.stringify()
返回不可变对象的深度复制版本,您随后可以在代码中使用/修改该版本。因为它是一个深度复制的版本,所以生成它的成本更高toJS()
映射
,您可以使用for(让您的映射进入){…}
()对其进行迭代。您的初始状态为postArr
,但mapstatetrops
是指状态。allPosts
?我对Redux了解不多,但是你不能直接返回状态
,并用{this.props.postArr.map(…)}
对它进行迭代(我在JSX中假设)?“deep”副本(toJS()
)实际上会为目标对象结构创建一个“simple”JS对象的新实例,而toJSON()
只需将对现有JS对象的引用放入目标对象结构中即可。这可能会使“不可变”对象中的内容容易受到更改的影响。但这实际上取决于您的用例,以及它的相关性。