习惯上根据React中的状态缓存计算值的方法?

Epe*_*eli 14 javascript svg reactjs

React文档说

不要担心基于状态预先计算值 - 如果在render()中进行所有计算,则更容易确保UI是一致的.

http://facebook.github.io/react/docs/interactivity-and-dynamic-uis.html

当计算量很小时,这非常有意义.

但我正在将大量数组存储在this.state我正在SVG上呈现的数据可视化中.我必须根据这些计算几个值.问题是那些计算相当繁重,并且不可能总是在渲染中计算那些计算.

那么,我应该如何缓存这些计算,同时确保我不会this.state与那些计算变量的状态不一致?

Epe*_*eli 6

我想我已经明白了.

我将大数组移动到父组件的状态,我将它们作为道具传递给可视化组件.然后,我只是计算值componentDidMountcomponentWillReceiveProps,并将它们保存到可视化组件的状态.

在我的情况下,这避免了大多数无用的计算.但是如果它还不够,我可以进一步扩展当前道具与下一个道具,componentWillReceiveProps以确定是否实际需要计算.

更新:现在我已经使用React工作了更多我认为应该使用memoizing来完成.重新选择是很好的基础.

  • React强迫你进入这种软件设计的心理模式是多么美好.避免尽可能保持状态,在组件层次结构中尽可能高地"控制"责任.这允许更容易的缓存,更少逻辑的子组件和更容易的测试.我猜危险在于有一个ueber父组件作为神控制器,但可以通过其他注入模式进一步减少. (5认同)