-
问题:
1、只要执行setState(),组件就会重新render(),即使state没有任何变化。
2、父组件重新render(),子组件也会重新render(),即使子组件没有任何变化。
-
原因:
shouldComponentUpdate()默认返回true,即使数据没有任何变化render()也会执行。
-
解决方法:
1、重写shouldComponentUpdate()方法,比较新旧state和props数据,只有数据发生变化时才返回true,否则返回false。
2、使用PureComponent替代Component。
-
注意:
只是对新旧state和props数据进行浅比较,如果是数据对象的内部数据发生变化,也会返回false,因此不能直接修改state数据,应该产生新数据。
React组件优化
最新推荐文章于 2023-06-05 13:50:53 发布