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

Порядок эффектов родителя и ребёнка

Вопрос

Что выведет консоль при первом монтировании <Parent />?

function Child() {
  useEffect(() => console.log('child'), []);
  return null;
}
function Parent() {
  useEffect(() => console.log('parent'), []);
  return <Child />;
}

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

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

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

Коротко

Правильный ответ: child, parent. Эффекты запускаются после коммита снизу вверх: сначала у детей, потом у родителя.

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

  1. parent, child
  2. Порядок не гарантирован
  3. child, parentправильный ответ
  4. Только parent: эффекты детей запускаются позже

Разбор

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

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

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