2016-12-06 66 views
-1

比方说,我有一个UI元素,我希望它绑定到一个在REDX存储中的状态。这种状态变化是由用户操作触发时的一种好方法。但如果这是一个不断变化的状态呢?例如,如果某个元素需要显示该页面已打开多长时间。如果页面每隔100ms调度一次动作,那么它会发生巨大的内存泄漏,因为每100ms必须有一个新的状态对象创建并存储,并且永远不会垃圾收集。自动增加React/Redux中数据的最佳方法?

我目前只是使用良好的旧jQuery来更新它,但我认为这将是很好,如果这种数据绑定可以集成到大的react/redux流程中。欢迎任何建议。谢谢。

+0

如果您使用的是Redux DevTools,Redux仅在内存中存储较旧的状态,并且对存储多少个旧状态具有默认限制。在生产过程中,不存储旧的州,并且一切都将被垃圾收集。请参阅http://redux.js.org/docs/faq/Performance.html#performance-state-memory。 – markerikson

+0

@markerikson谢谢,很高兴知道,我以前不知道这一点。所以我假设你建议这个问题的最佳方法是将UI元素绑定到一个状态,而不用担心内存? – Hao

+0

啊...基本上,是的,不要担心内存方面。另外,我实际上建议你在使用React和Redux时不要考虑“绑定”这个词。 – markerikson

回答

0

我会尽量回答我自己的问题。 查看thisthisthis是有帮助的。

在这种情况下,最好的方法是绕过REDX存储并使用新的道具呈现新的UI元素。这样,只有与显示UI元素相关的道具才会被复制,而不是完整的状态树。

呈现新的UI元素不会移除旧的UI元素,因为这是反应擅长的:比较差异并仅更新需要更新的部分。