Для чего нужен `useLayoutEffect` и чем он отличается от `useEffect`?
- useLayoutEffect — синхронный, выполняется в commit-фазе после обновления DOM, но до обновления экрана браузером
- useEffect — асинхронный, выполняется после отрисовки
- useLayoutEffect полезен для измерений DOM и синхронных манипуляций