反应避免重新渲染

时间:2018-07-08 16:48:55

标签: javascript reactjs websocket stomp spring-websocket

对于一个项目,我们希望在应用程序的所有视图中都显示通知。

侧边栏菜单允许用户在视图之间移动,并且与通知组件和Websocket组件react-stomp处于同一级别。路由器用于根据所选菜单项在下一级更改视图。

我们的问题是,如果有新消息到达,我们需要将其作为道具传递给视图,当然这会触发整个组件的重新渲染。

有办法避免这种重新渲染吗?

尽管我们知道这是一个可能的解决方案,但我们还是希望避免Redux。

3 个答案:

答案 0 :(得分:3)

默认情况下,如果道具更改反应将触发重新渲染。如果要避免呈现组件网,可以使用钩子shouldComponentUpdate(nextProps, nextState)

引用React的文档:

  

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

如需进一步阅读,请访问their docs

答案 1 :(得分:1)

您是否尝试过尝试使用生命周期事件挂钩?

答案 2 :(得分:0)

如果要避免使用Redux或MobX之类的状态管理器,可以使用REACT CONTEXT API