在React中跳过ExtJS组件子节点的渲染

时间:2019-01-16 10:03:23

标签: reactjs optimization extjs

我们正在使用React(和Redux)构建示例,其中一个组件(Component_B)是围绕编写的第三方应用程序的 wrapper ExtJS中。

该第三方非常重视重绘,因此我们希望最大程度地减少React对其进行重新渲染的时间。

Component_B的{​​{1}}和state会定期更改并重绘props。 当Component_B Component_Bprops更改时,我们显式调用某些state函数,以更新ExtJS视觉呈现。

Third-Party App

我们如何避免 .---------------------------------------------------------------. | Component_A | | | | | | .------------------------------------------.| | | Component_B || | | || | | .------------------------------------.|| | | | Third-Party App (written in ExtJS) ||| | | | ||| | | '------------------------------------'|| | '------------------------------------------'| '---------------------------------------------------------------' component_Bprops的更改触发state的重新呈现,尽管Third-Party App受{{ 1}}?

1 个答案:

答案 0 :(得分:1)

我认为您正在React中寻找一个名为shouldComponentUpdate的函数。

  

使用shouldComponentUpdate()来让React知道组件的输出是否不受当前状态或道具更改的影响。默认行为是在每次状态更改时重新呈现,并且在大多数情况下,您应该依赖默认行为。

     当接收到新的道具或状态时,

shouldComponentUpdate()在渲染之前被调用。默认为true。初始渲染或使用forceUpdate()时不会调用此方法。

因此,只需将此函数添加到Component_B中即可:

shouldComponentUpdate(nextProps, nextState) {
    ...
    return false;
}

还是您希望重新渲染Component_B,而不是ExtJS应用本身?在这种情况下,请在评论中让我知道。