Похоже, вы неверно истолковываете, какими бы ни были эти мигающие контуры.
Я добавил лог-оператор к Card.js
, загрузил страницу и щелкнул по каждой из трех карточек.Я получил такой вывод:
App.js:20 <App /> render
12:54:17.198 List.js:9 cardIDs: (3) [64, 1512, 900]
12:54:17.203 Card.js:5 Card rendering: Card One
12:54:17.209 Card.js:5 Card rendering: Card Two
12:54:17.210 Card.js:5 Card rendering: Card Three
12:54:17.211 Deck.js:8 deckCardsIDs: []
12:54:23.108 Deck.js:8 deckCardsIDs: [64]
12:54:23.109 Card.js:5 Card rendering: Card One
12:54:23.780 Deck.js:8 deckCardsIDs: (2) [64, 900]
12:54:23.782 Card.js:5 Card rendering: Card Three
12:54:24.460 Deck.js:8 deckCardsIDs: (3) [64, 900, 1512]
12:54:24.462 Card.js:5 Card rendering: Card Two
Это указывает на то, что все три экземпляра <Card>
отображаются при запуске, а затем только новые добавленные экземпляры компонента отображаются при каждом щелчке.
Кроме того,Я использовал React DevTools Profiler для захвата шаблона обновления по щелчкам, который выглядел следующим образом:
Вы можете видеть, что только паракомпоненты фактически обновлены.
v6 имеет внутреннюю реализацию, отличную от v5 , но в целом должна иметь такое же общее поведение.