DOM и React Middle Ref и DOM обновлено

Измерение после отрисовки

Условие

Компонент должен положить ширину блока в состояние сразу после монтирования и показать её. Измерение делается по DOM-узлу.

Что проверяют тесты

  • измеряет ширину

Как подойти

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

Подсказки: 2
  1. Измерять можно только после того, как узел появился в документе.
  2. useLayoutEffect выполняется синхронно после вставки в DOM, до отрисовки кадра.

Решите в тренажёре

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

Термины по теме