VK
Size: a a a
VK
МУ
React update 1: render virtual DOM, schedule effects, update DOM
Call useLayoutEffect
Update state, schedule re-render
Call useEffect
React update 2
Call useLayoutEffect from update 2
React releases control, browser paints the new DOM
Call useEffect from update 2
VK
МУ
VK
МУ
useLayoutEffect обновляется состояние, а значит при повторной фазе запуска этого самого useLayoutEffect снова будет обновление состояния, и снова ререндер? БесконечныйVK
МУ
VK
МУ
useLayoutEffect, в который вызывает ререндер (он же и вызвал его в первом цикле), то по идее будет бесконечные рендеры?МУ
VK
МУ
VK
VK
МУ
React update 1: render virtual DOM, schedule effects, update DOM
Call useLayoutEffect
Update state, schedule re-render
Call useEffect
React update 2
Call useLayoutEffect from update 2
React releases control, browser paints the new DOM
Call useEffect from update 2Call useLayoutEffect произошло обновление состояния и ререндер, то я и подумал, что, значит, Call useLayoutEffect в данном случае что-то внутри делает, что делает ререндер)МУ
VK
МУ
МУ
useEffect гарантировано будут соблюдать порядок своих вызовов, которые происходят чётко перед каждым ререндером, к примру, Но либо после отрисовки, если всё идёт «как обычно»