0Pricing
React Academy · Урок

Производное состояние и отказ от лишних рендерингов

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

«Производное состояние и отказ от лишних рендерингов» — бесплатный урок React Academy на CoddyKit. Это урок 3 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения React Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс React Academy содержит 3 уроков всего.

Что такое производное состояние

Производное состояние — это значения, вычисленные из существующего состояния или свойств (например, fullName, итоги, фильтры). Используйте единый источник истины, чтобы уменьшить число ошибок и повторных отрисовок.

Правила: вычислять или хранить

  • Вычисляйте, если значение можно получить заново из других данных.
  • Храните только пользовательский ввод или данные сервера, которые невозможно вычислить.
  • Мемоизируйте ресурсоёмкие производные значения.

Антипаттерн: дублирование состояния

Избегайте синхронизации дублирующегося состояния. В этом примере fullName хранится в состоянии и обновляется в эффекте — данные легко рассинхронизировать, к тому же возникают лишние отрисовки.


<div id="root"></div>

Производное значение (хороший вариант)

Вычисляйте fullName из имени и фамилии. Синхронизация не нужна, а повторных отрисовок меньше. Используйте useMemo, если объединение данных требует больших вычислений.


<div id="root"></div>

Мемоизация ресурсоёмких производных вычислений

Для ресурсоёмких производных значений (например, при сортировке или форматировании) используйте useMemo, чтобы повторно вычислять результат только при изменении входных данных.


<div id="root"></div>

Советы и проблемы

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

Рекомендация по производному состоянию

Какая практика лучше всего предотвращает лишние повторные отрисовки из-за дублирования данных?

Итоги

Итоги: используйте единый источник истины. Вычисляйте fullName, итоги и фильтры из существующих данных. Мемоизируйте ресурсоёмкие вычисления, чтобы пропускать ненужные отрисовки.

Часто задаваемые вопросы

Урок «Производное состояние и отказ от лишних рендерингов» бесплатный?

Да — полный текст урока «Производное состояние и отказ от лишних рендерингов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс React Academy, подпишись на CoddyKit PRO. Курс React Academy содержит 3 уроков всего.

Чему я научусь в уроке «Производное состояние и отказ от лишних рендерингов»?

Предпочитайте производные значения дублированному состоянию; мемоизируйте затратные вычисления и сохраняйте единый источник истины, чтобы избегать лишних рендерингов. Ты практикуешь React Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать React Academy?

Предыдущий опыт не требуется. React Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 3.

Сколько времени занимает урок «Производное состояние и отказ от лишних рендерингов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке React Academy?

Да. Каждый урок React Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Повторные рендеринги и фиксации: когда нужна оптимизация
  2. React.memo, useMemo, useCallback — на практике
  3. Производное состояние и отказ от лишних рендерингов
← Назад к React Academy