我如何在我的 redux-react 应用程序中利用不可变性?

How do I leverage immutability in my redux-react application?

我在 redux 中看到每当状态发生变化时,都会创建一个新状态,而不是改变旧状态。我想知道每次创建一个新对象对我们有什么好处。我读到的一件事将有助于调试,因为所有状态都将从浏览器中的应用程序开始出现,因此我们可以切换到我们想要的任何状态。但是内存呢,存储所有的商店会吃掉内存,对吧?请纠正我。我们将如何利用不变性来提高我们应用程序的性能。我是 React 和 Redux 的新手。而且我无法找到确切的答案。请用非常简单的话帮助我。 :)

But what about the memory, storing all the stores would eat memory

首先,在 redux 中只有一个 store,其次,鉴于 store 只保留原始数据类型,即使是非常复杂的应用程序的内存开销也很小,你真的不必担心关于它。你会 运行 比内存更快地遇到更大的问题,当你这样做时,你会处理它,但不会更快 - 这将是预优化。来自 redux FAQ http://redux.js.org/docs/FAQ.html#performance-state-memory

的更多信息

and how would we leverage immutability to increase the performance of our app

这个概念很简单,因为如果树中发生了某些变化,React 会基于比较的呈现,比较操作需要尽可能快。进入不变性。例如,给定两个对象,您不需要逐个键来确定它是否相同(例如 Angular 1.x 以这种方式工作),您只需比较 obj1 === obj2 和 boom , 你完成了。如果两个对象指向内存中的相同地址(在幕后),则它们相等,否则它们不相等。