TGViewer
{ Снежные строки } { Снежные строки } @snowlines · 89 subscribers
Post #57 176
❄️ Сегодня разберем задачку, которая часто вызывала у меня трудности на собеседованиях: 
порядок вывода console.log в функциональном компоненте React.

Пример:
import React from 'react';

const Inner = () => {
console.log('render-inner');
return null;
}

export function App() {
const [counter, setCounter] = React.useState(0);

console.log('render-1', counter);

React.useEffect(() => {
setCounter(1);
console.log('effect-1', counter);
}, []);

React.useEffect(() => {
setCounter(2);
console.log('effect-2', counter);
}, [counter]);

console.log('render-2', counter);
return <Inner />;
}
}


Основные правила жизненного цикла React


1️⃣ Монтирование компонента 🛠

➖React сначала выполняет рендер компонента.
➖Внутри рендера выполняются все синхронные операции, включая вызовы `console.log`.
➖После рендера React монтирует компонент в DOM.

2️⃣ Запуск эффектов (useEffect) ⚡️

➖После монтирования React запускает эффекты (useEffect).
➖Эффекты с пустым массивом зависимостей ([]) выполняются только один раз после первого рендера.
➖Эффекты с зависимостями (например, [counter]) выполняются после каждого рендера, если зависимости изменились.

3️⃣ Обновление состояния (setState) 🔄

➖Если внутри эффекта вызывается setState, React планирует обновление состояния.
➖Обновление состояния приводит к повторному рендеру компонента.

4️⃣ Повторный рендер 🔁

➖После обновления состояния React снова выполняет рендер компонента.
➖Если в результате рендера изменяются зависимости эффектов, эти эффекты снова выполняются.

Итоговый порядок вывода
render-1 0
render-2 0
render-inner
effect-1 0
effect-2 0
render-1 2
render-2 2
render-inner
effect-2 2
render-1 2
render-2 2


#Собеседование #React
  • 👍 6
  • 👨‍💻 2
More from @snowlines
  1. Jul 8, 2025Post #94
  2. Jul 3, 2025❄️ Вернулась с отпуска, сейчас нужно заново научиться работать
  3. Jun 9, 2025❄️ Хочу начать серию постов про Redux Redux - state manager, которым я пользуюсь, как в ли…
  4. Jun 5, 2025Post #91
  5. Jun 5, 2025#Задачи
  6. May 24, 2025❄️ Функция высшего порядка Тема, которую можно встретить на собеседованиях очень часто. Да…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →