shouldComponentUpdate сценарий использования

#reactjs

#reactjs

Вопрос:

введите описание изображения здесь

Последний интересный случай — C8. React должен был отрисовывать этот компонент, но поскольку возвращаемые им элементы React были равны ранее отрисованным, ему не нужно было обновлять DOM.

Итак, это взято из официальных документов react.

Для C8 SCU возвращает true, а также виртуальные домены (предыдущий и следующий) равны. Как это возможно?

Единственный сценарий, который я могу придумать, — это когда вы передаете props в C8, но не используете их в методе рендеринга C8.

Может ли кто-нибудь развить это на соответствующем примере?

Ответ №1:

Каждый раз, когда компонент React получает новое состояние или реквизиты, он пытается выполнить повторную визуализацию. Но, как вы заявили, иногда определенные реквизиты или значения состояния не влияют на выводимый результат.

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

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