.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

.client 目录仅在使用 Remix Vite 时受支持。 Classic Remix Compiler 仅支持 .client 文件。

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

文档和示例使用以下许可证: MIT