React Router v7 已发布。 查看文档
.client 模块

.client 模块

虽然不常见,但您可能会遇到在浏览器中使用模块副作用的文件或依赖项。您可以使用 *.client.ts 文件名或将文件嵌套在 .client 目录中,以强制它们脱离服务器捆绑包。

// this would break the server
export const supportsVibrationAPI =
  "vibrate" in window.navigator;

请注意,从此模块导出的值在服务器上都将是 undefined,因此唯一可以使用它们的地方是在 useEffect 和用户事件(如点击处理程序)中。

import { supportsVibrationAPI } from "./feature-check.client.ts";

console.log(supportsVibrationAPI);
// server: undefined
// client: true | false

仅在使用 Remix Vite 时才支持 .client 目录。 经典的 Remix 编译器 仅支持 .client 文件。

有关更多信息,请参阅侧边栏中的“路由模块”部分。

文档和示例根据以下许可证授权 MIT