我在我的应用程序中使用 redux 和 Immutable.js,我在开始开发项目几周后将 Immutable 添加到应用程序,因为我不想将当前组件更改为 Immutable 的 .get() 语法在我的组件中使用它们之前,我将商店中的不可变映射转换为对象。例如:
@connect((store) => {
return {
login: store.login.toObject(),
user: store.user.toObject()
};
})
这是一种不好的做法吗?这与我的应用的性能相关吗?
最佳答案
是的,这是一个非常糟糕的做法。为了让 Immutable 将您的 Immutable 映射转换为 JavaScript,它必须遍历整个对象;这会很慢。此外,您正在失去将 ImmutableJS 与 React 和 Redux 结合使用的大量实际值(value)。具体来说,您现在不能再通过 shouldComponentUpdate
的简单实现来短路不必要的重新渲染。 .
关于javascript - 可以将 Immutable.js Map 转换为 React 组件内的对象吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39684132/