Допустим, у нас есть родительский компонент и несколько функциональных дочерних компонентов. Я хочу четко знать, перерисовывает ли родитель, перерисовывает ли ребенок или нет.
Пройдя несколько статей, я узнал, что есть 3 способа обнаружения повторных передач. (Дайте мне знать, если есть еще способы.)
1. Поместите console.log
в дочерний компонент.
2. Используйте в настройках Chrome мигающую опцию.
![enter image description here](https://i.stack.imgur.com/PG5Ut.png)
3. Используйте React dev tool
![enter image description here](https://i.stack.imgur.com/nmkix.png)
Правильно ли все эти способы узнать, действительно ли компонент перерисовывается? Потому что, похоже, с React.memo он работает неправильно.
Когда я оборачиваю дочерний компонент в React.memo, он не печатает console.log
, когда родительский компонент перерисовывается, что правильно. Но все еще с chrome и инструментами реагирования dev подсвечивает дочерний компонент, как будто он перерисовывается.
CodeSandbox: https://codesandbox.io/s/bold-cloud-iv0rv (Если мы добавим новую машину, компонент stati c будет выделен зеленым, но в соответствии с Memo, он не должен перерисовываться.)
Теперь я сомневаюсь, мигание краски работает неправильно или React.memo имеет проблемы?