useEffect 三种用法,在 commit 阶段的挂载时机(源码级辨析)
「useEffect 是渲染后异步执行的副作用」——这句话对,但不完整。同样是 useEffect,useEffect(fn)、useEffect(fn, [])、useEffect(fn, [a]) 在 commit 阶段触发的时机和条件完全不同;再叠上 useLayoutEffect,时机又变了。
本文从 React 源码(open/react)出发,把「不同使用方式 → 不同 flag → commit 阶段不同挂载时机」这条链讲清楚。
