对于项目,我们希望在应用程序的所有视图中都可以看到通知 .
侧边栏菜单允许用户在视图之间移动,并且与通知组件和websocket组件react-stomp处于同一级别 . 路由器用于根据所选菜单项更改下一级别的视图 .
我们的问题是,如果有新消息到达,我们需要将其作为道具传递给视图,当然这会触发整个组件的重新渲染 .
有没有办法避免这种重新渲染?
我们希望避免使用redux,尽管我们知道它是一种可能的解决方案 .
对于项目,我们希望在应用程序的所有视图中都可以看到通知 .
侧边栏菜单允许用户在视图之间移动,并且与通知组件和websocket组件react-stomp处于同一级别 . 路由器用于根据所选菜单项更改下一级别的视图 .
我们的问题是,如果有新消息到达,我们需要将其作为道具传递给视图,当然这会触发整个组件的重新渲染 .
有没有办法避免这种重新渲染?
我们希望避免使用redux,尽管我们知道它是一种可能的解决方案 .
3 回答
如果要避免使用Redux或MobX等状态管理器,可以使用REACT CONTEXT API
默认情况下,如果props更改反应将触发重新渲染 . 如果你想避免渲染一个组件你可以使用钩子
shouldComponentUpdate(nextProps, nextState)
引用React的文档:
如需进一步阅读,请访问their docs
您是否尝试过使用react生命周期事件挂钩?