Back to questions
Middle+
2
Что выведется в консоли при первом рендере React-компонента с дочерним компонентом (useLayoutEffect, useEffect)?
Companies where asked
Evocargo
Answer from AI
sobes.tech AI
При первом рендере React-компонента с дочерним компонентом, в котором используются хуки useLayoutEffect и useEffect, порядок вызовов будет следующим:
- Сначала React отрисует DOM.
- Затем выполнится callback из useLayoutEffect — он вызывается синхронно сразу после изменения DOM, но до того, как браузер отрисует изменения на экране.
- После этого браузер обновит экран.
- И только потом выполнится callback из useEffect — он вызывается асинхронно после того, как браузер отрисовал изменения.
Пример вывода в консоль:
function Child() {
React.useLayoutEffect(() => {
console.log('useLayoutEffect');
}, []);
React.useEffect(() => {
console.log('useEffect');
}, []);
return <div>Child</div>;
}
function Parent() {
return <Child />;
}
// При первом рендере в консоли будет:
// useLayoutEffect
// useEffect
Таким образом, useLayoutEffect срабатывает раньше useEffect при первом рендере.