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

Nan*_*ane 4 javascript reactjs immutable.js redux

我是React + Redux + Immutable js的新手,我使用toJS()将我的不可变数据结构转换为原生javascript格式.但最近我用这条推文恍恍惚惚

Immutable.Js的作者

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

UPDATE

const initialState = fromJS({
   postArr:[]
});

    const mapStateToProps = (state) => {
        return{
            posts:state.allPosts.toJS()
        }
    };
Run Code Online (Sandbox Code Playgroud)

请用我自己的Reducer提供一些示例

如何在this.props.posts不使用to.js()的情况下进行迭代

rob*_*lep 14

根据我从文档中理解的内容:

  • toJSON()返回一个浅层复制的不可变对象版本(不是JSON 字符串,虽然名称可能另有说明),它只能用于传递JSON.stringify()(换句话说:你不应该将它用作代码中的常规对象) .

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