React useIsomporphicEffect钩子
在服务器端解析为useEffect()
,在客户端解析为useLayoutEffect()
。
- 使用
typeof
来检查Window
对象是否已定义。如果已定义,则返回useLayoutEffect()
。否则返回useEffect()
。
const useIsomorphicEffect =
typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
const MyApp = () => {
useIsomorphicEffect(() => {
window.console.log('Hello');
}, []);
return null;
};
ReactDOM.createRoot(document.getElementById('root')).render(
<MyApp />
);