Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Redux:如果每个状态更改都是一个新对象,那么性能如何?_Reactjs_Memory Leaks_Redux - Fatal编程技术网

Reactjs Redux:如果每个状态更改都是一个新对象,那么性能如何?

Reactjs Redux:如果每个状态更改都是一个新对象,那么性能如何?,reactjs,memory-leaks,redux,Reactjs,Memory Leaks,Redux,在中的Redux文档中,说明了: 我们不会改变国家。我们使用Object.assign()创建一个副本。 赋值(状态为{visibilityFilter:action.filter})也是 错误:它将变异第一个参数。你必须提供一个空的 对象作为第一个参数。还可以启用对象排列 操作员建议改为写入{…state,…newState} 我的问题是:创建新的State对象对性能和内存消耗有影响吗 如果我每次创建一个新对象,那么我的内存中就有许多State对象,从长远来看,这应该会占用大量内存 这是如何处

在中的Redux文档中,说明了:

我们不会改变国家。我们使用Object.assign()创建一个副本。 赋值(状态为{visibilityFilter:action.filter})也是 错误:它将变异第一个参数。你必须提供一个空的 对象作为第一个参数。还可以启用对象排列 操作员建议改为写入{…state,…newState}

我的问题是:创建新的
State
对象对性能和内存消耗有影响吗

如果我每次创建一个新对象,那么我的内存中就有许多
State
对象,从长远来看,这应该会占用大量内存


这是如何处理的?关于性能问题和内存消耗,我遗漏了什么?

好吧,一句话。。。不是真的

如果您的状态对象是唯一一个引用该对象的对象,并且应该是,那么当您用另一个对象替换该对象时,旧对象将被清除。请参阅以下有关Javascript中内存和垃圾收集的链接:


您可能认为您的组件正在存储对状态的引用(不应该),但通常这些只是对传递到render方法中的状态部分的临时引用。

有很好的答案是的,考虑到这个问题,我得出了相同的结论:最终引用总是一个。。。谢谢你的回答!