Виртуальный DOM и реагировать на запрос производительности? - PullRequest
0 голосов
/ 05 мая 2018

Если у меня есть родительский компонент, который содержит несколько дочерних компонентов, и если я обновлю родительский компонент, он отреагирует повторно на весь родительский компонент, включая дочерний ?? ??

1 Ответ

0 голосов
/ 05 мая 2018

Да, по умолчанию будут перерисованы все вложенные дочерние компоненты. Однако под капотом реагирования применяется дифференцирующий алгоритм, чтобы определить, какие узлы DOM необходимо окончательно обновить. В большинстве случаев это различие достаточно и достаточно быстро. Если вы испытываете проблемы с производительностью, взгляните на метод жизненного цикла shouldComponentUpdate(), где вы можете определить, будет ли компонент (и его дочерние элементы) перерисован или нет.

Например, если вы хотите перерисовать компонент только тогда, когда myProp изменится:

shouldComponentUpdate(nextProps, nextState) {
  if (this.props.myProp !== nextProps.myProp) {
    return true
  }
  return false
}
...