Когда реактивный компонент не будет чистым компонентом? - PullRequest
0 голосов
/ 03 января 2019

только что прочитал это: https://reactjs.org/docs/react-api.html#reactpurecomponent

и пытался понять, когда функция не вернет что-то чистое?

, конечно, если вы дадите компоненту тот же реквизит / состояние, чем онвсегда будет возвращать один и тот же результат?

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Если ваш компонент функции имеет какие-либо побочные эффекты, то он не будет чистым компонентом.Например, чтение текущего времени через Date.now() является побочным эффектом.Если эта дата пропущена через реквизит, то все в порядке.Но React / JavaScript не может гарантировать, что компонент функции не имеет побочных эффектов.

Рассмотрим следующие компоненты функции.

function Impure() {
  return <p>{Date.now()}</p>
}

function Pure(date) {
  return <p>{date}</p>
}
0 голосов
/ 03 января 2019

Представьте себе, если у вас есть компонент, который показывает погоду и фоновое изображение солнца, если это дневное время, и фоновое изображение луны, если это ночь.

Вы бы передавали температуру, скорость ветра и т. Д. Через реквизит, но отображали правильное изображение в зависимости от времени суток.

Итак, если вы пройдете температуру 15 градусов в течение дня и ночью, компонент будет выглядеть по-разному, даже если вы пропустили один и тот же реквизит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...