Skip to content

useIsomorphicLayoutEffect ​

useIsomorphicLayoutEffect 是一个 React Hook,它在浏览器中运行 useLayoutEffect,同时避免在服务端渲染(SSR)期间触发其警告。在 SSR 期间,没有 DOM 可供同步测量或变更,因此在 React 18 及更早版本中,使用 useLayoutEffect 会触发警告。effect 只会在浏览器中运行。此 Hook 只负责避免警告,不会让服务端输出与客户端保持一致。React 19 不再发出该警告,因此在 React 19 中可以直接使用 useLayoutEffect。

在浏览器中,它会在 DOM 更新之后、绘制之前同步运行,因此非常适合:

  • 在渲染后测量 DOM 元素
  • 在绘制前应用 DOM 变更
  • 防止 UI 闪烁或布局偏移

接口 ​

ts
function useIsomorphicLayoutEffect(
  effect: React.EffectCallback,
  deps?: React.DependencyList
): void;

参数 ​

  • effectrequired · React.EffectCallback

    effect 函数。

  • depsReact.DependencyList

    可选的依赖数组。

返回值 ​

此函数不返回任何值。

示例 ​

tsx
useIsomorphicLayoutEffect(() => {
  // 在客户端布局阶段执行的代码
}, [dep1, dep2, ...]);

基于 MIT 许可证发布。