【发布时间】:2016-12-06 22:45:32
【问题描述】:
假设我有一个 UI 元素,我希望它绑定到 redux 商店中的一个状态。当这种状态更改由用户操作触发时,这是一个很好的方法。但是,如果这是一个不断变化的状态呢?例如,如果一个元素需要显示页面打开了多长时间。如果页面每 100 毫秒调度一次操作,那么它将导致巨大的内存泄漏,因为每 100 毫秒必须创建和存储一个新的状态对象,并且永远不会被垃圾回收。
我目前只是使用好的旧 jQuery 来更新它,但我认为如果这个数据绑定可以集成到大的 react/redux 流程中会很好。欢迎任何建议。谢谢。
【问题讨论】:
-
Redux 仅在使用 Redux DevTools 时将旧状态存储在内存中,并且默认限制了存储旧状态的数量。在生产环境中,不存储旧状态,所有内容都将被垃圾回收。见redux.js.org/docs/faq/Performance.html#performance-state-memory。
-
@markerikson 谢谢,很高兴知道,我以前不知道。所以我假设您建议解决此问题的最佳方法是将 UI 元素绑定到状态而不担心内存?
-
啊...基本上,是的,不用担心内存方面。另外,我实际上建议你在使用 React 和 Redux 时不要考虑“绑定”这个词。
-
@markerikson 谢谢。你能详细说明“绑定”这个词有什么问题吗?此外,如果树很大,每隔很短的时间就必须复制状态树怎么办,在我看来,这会使浏览器在 GC 上花费大量 cpu 时间。
标签: javascript reactjs redux