PassFront
  1. PassFront
  2. База знаний
  3. Рендеринг и производительность

Какие плюсы и минусы компонентного рендеринга в React.js?

Рендеринг и производительность

Компонентный рендеринг — модель, где UI собирается из независимых компонентов, каждый из которых сам описывает свой кусок интерфейса и перерисовывается при изменении своих данных.

Плюсы

  • Переиспользование — кнопка, модалка, таблица пишутся один раз и используются везде; вырастает в дизайн-системы и UI-киты.
  • Изоляция и локальность — у компонента свои state, стили и логика; баг ищется в границах компонента, а не по всему приложению.
  • Композиция — сложные экраны собираются из простых блоков как конструктор; вложенность через children.
  • Тестируемость — компонент рендерится в тесте изолированно с нужными props.
  • Параллельная работа команды — разные люди пилят разные компоненты без конфликтов.
  • Точечные обновления — перерисовывается поддерево изменившегося компонента, а не страница целиком.

Минусы

  • Каскадные перерендеры — обновление родителя по умолчанию рендерит всех детей; без внимания к структуре состояния и мемоизации большие деревья тормозят.
  • Оверхед абстракции — на простых страницах компонентная сетка с props/state сложнее, чем кусок HTML; риск «сверхдробления» на десятки микрокомпонентов.
  • Prop drilling — данные сквозь много уровней требуют контекста или стора, это плата за изоляцию.
  • Дисциплина границ — плохо выбранные границы компонентов (смешение логики и разметки, гигантские «болота») сводят плюсы на нет.

Коротко для собеседования

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

Другие вопросы раздела