.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
文件。
有关更多信息,请参阅侧边栏中的“路由模块”部分。