【React】react做的管理系统,其中内容区是tabs来控制,性能怎样优化?
我们的项目大概是这样子,github上发现一个跟我们项目差不多的demo,感谢作者搭得这么棒的系统 jiangxy/react-antd-admin 这里借用来说明下问题~
如图,点击左边的Menu,然后Tabs会多一个,所有Tabs都可以相互切换并各个Tab页状态要保持不变,而且不限个数。
问题来了,上面的demo页面其实切换Tabs的时候,仅仅是把它们隐藏起来,并没有销毁,虽然很好的达到页面状态保存的目的,但我们的真实项目功能比较多而且复杂,多开几个就会发现特别卡。
我们现在的方案是,仅仅渲染激活的Tab,其他没被激活的Tab都不渲染(相当于销毁了该Tab内容区的组件),并保存它们的全部状态到Redux上。当切换回来的时候,用保存的状态重新渲染一遍组件。这就保证页面中只有激活的Tab的内容,确实这样就不会卡……
所以想请问各位老司机还有什么好方法吗?
回答
在Tab context 里进行shouldComponentUpdate(nextProps)
判断 this.props 和 nextProps 的当前Tab 和 active Tab 是不是一个 , 不是的话就不更新
以上是 【React】react做的管理系统,其中内容区是tabs来控制,性能怎样优化? 的全部内容, 来源链接: utcz.com/a/76814.html