【发布时间】:2019-09-11 07:49:00
【问题描述】:
我有一个采用 React-Redux 架构的浏览器应用程序。应用程序中会发生许多事件(例如超时、Web 套接字传入消息、Web Worker 消息、XHR 响应等)。每个事件都会发出一个 Redux 操作,该操作会更改导致 React 渲染的 Redux 存储。
问题在于事件发生得太频繁以至于 React 没有足够的时间来渲染 UI(例如,一个事件每 5 毫秒(或更频繁)发生一次,而 React 需要 10 毫秒来渲染 UI)。它使整个页面停止响应,因为渲染过程没有停止(它总是有东西要渲染)并且浏览器没有时间绘制 DOM 或处理 DOM 事件。
考虑到我既不能减少事件频率也不能减少 React 渲染时间,有哪些方法或现成的解决方案可以解决这个问题?
【问题讨论】:
-
我不确定每次数据更新是否都会改变值?如果不是,也许你可以试试
memoization? reactjs.org/blog/2018/06/07/… -
@tekminewe 我使用 React.PureComponent,我的意思是更改值的更新。无论如何,“减少 React 渲染时间”的方法并不总是合适的。
-
您是否考虑过使用去抖动功能的概念来解决这个问题?仅在经过一定的时间间隔后才将更改传递给 redux 存储,否则忽略来自后端的响应。
-
@remelkabir 我想过但从未使用过。请发布描述此技术的答案。
-
levelup.gitconnected.com/… 这可能会让您了解如何使用它。
标签: javascript reactjs performance redux