Redux:如果每个状态变化都是一个新对象,表演怎么样?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redux:如果每个状态变化都是一个新对象,表演怎么样?相关的知识,希望对你有一定的参考价值。
在Redux文档中,在chapter about Reducer
s中,声明如下:
我们不会改变国家。我们使用Object.assign()创建一个副本。 Object.assign(state,{visibilityFilter:action.filter})也是错误的:它会改变第一个参数。您必须提供一个空对象作为第一个参数。您还可以启用对象扩展运算符提议来编写{... state,... newState}。
我的问题是:这个新的State
对象的创建是否会对性能和内存消耗产生影响?
如果我每次创建一个新对象,那么我在内存中有许多State
对象,从长远来看这应该占用大量内存。
这是如何处理的?我对性能问题和内存消耗缺少什么?
答案
好吧,总之......不是真的。
如果您的状态对象是唯一一个引用该对象的状态对象,那么当您将该对象替换为另一个对象时,旧对象将被清除。在javascript中查看有关内存和垃圾回收的链接:
https://codeburst.io/javascript-memory-management-and-garbage-collection-in-javascript-ebe7a97d7143
您可能认为您的组件存储了对状态的引用(它不应该),但通常这些只是对传递给render方法的状态部分的临时引用。
以上是关于Redux:如果每个状态变化都是一个新对象,表演怎么样?的主要内容,如果未能解决你的问题,请参考以下文章