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 />
);