Closed tkgkn closed 4 years ago
切换路由时发现头部组件每次都会渲染本来就是正常情况,不同页面的header的render结果不一定一样
你这个NormalHeader是两个instance shouldComponentUpdate是控制同一个instance在props改变的时候要不要重新render
你这个NormalHeader是两个instance shouldComponentUpdate是控制同一个instance在props改变的时候要不要重新render
意思是,每次路由切换,整个页面都会被完整替换了,即便我写了公用的header和footer,它们的内容也一样,路由切换时,2个页面的header和footer又渲染了一次。
😯,看出来了,entry.js里面Route直接render的就是Layout和其children,怪不得优化无效了。
我将官方demo中的 web/layout/index.js中将头部组件抽出,然后观察切换路由时发现头部组件每次都会渲染,即便我在shouldComponentUpdate中直接返回false也无效。
最小实现: 修改官方demo中的web/layout/index.js文件。粘贴如下代码,然后切换文章路由再返回即可发现header一直在渲染。