今天碰到一个在路由跳转时,公共组件也重新渲染的问题。由于react用的不熟,竟然忽略了添加key,这么重要的点。diff算法是react的核心思想。当你添加了一个key之后,因为react在重新渲染时,会比较组件是否发生了变更,diff算法包括组件diff,element diff,还有dom树diff。有了key作为标识,react能很快的计算出是否需要重新渲染,如果没有添加key,默认就重新渲染。
不然公共组件重新渲染,一部分是出于对浏览器性能的优化,另外一部分是由于当你点击公共组件的时候,可能路跳转到某个页面,公共组件的样式也重新刷新了。导致某部分样式和页面不一致的现象。所以阻止公共组件的重新渲染也是出于对页面样式的统一。
网友评论