Выбор ответа Middle Эффекты и жизненный цикл обновлено

Когда нужен useLayoutEffect

Вопрос

В каком случае useLayoutEffect оправдан?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

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

Варианты ответа

  1. Для загрузки данных при монтировании, чтобы они пришли раньше
  2. Чтобы эффект не запускался дважды в StrictMode при разработке
  3. Всегда: он быстрее useEffect, потому что выполняется синхронно
  4. Чтобы измерить тултип и поставить его до отрисовки, без миганияправильный ответ

Разбор

useLayoutEffect выполняется синхронно после изменения DOM и до того, как браузер нарисует кадр, поэтому пользователь не увидит промежуточную позицию. Для загрузки данных он только задержит отрисовку. StrictMode проверяет и его тоже. Он не быстрее: он блокирует отрисовку, поэтому по умолчанию берут useEffect.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.