SuperAPI AI 工具集

tanstack-start-client-core-start-core-execution-model

通用与其它

查看项目

更新于 10-16 00:02

技能介绍

用途:帮助理解 TanStack Start 中代码究竟在哪里运行。核心原则是所有代码默认同构,同时进入服务端与客户端 bundle;路由 loader 在 SSR 与客户端导航时都会执行,因此服务端专属操作必须使用 createServerFn。

主要能力:createServerFn 用于 RPC 与数据变更,客户端调用会转为网络请求;createServerOnlyFn 在客户端抛错;createClientOnlyFn 在服务端抛错;createIsomorphicFn 通过 .client()/.server() 提供分环境实现;<ClientOnly> 与 useHydrated() 处理仅浏览器渲染与 hydration 逻辑;文件级标记 import '@tanstack/<fw>-start/server-only' 或 client-only 可保护整个模块。

必要用法与限制:环境变量只能在 .handler() 等按请求执行的函数内读取,禁止在模块顶层读 process.env,否则既可能泄漏到客户端,也会在 Cloudflare Workers 等边缘运行时因按请求注入而得到 undefined。仅 VITE_ 前缀变量会暴露给客户端,服务端密钥不得加该前缀。同构 loader 中不要使用相对 URL 的 fetch。同一文件同时使用 server-only 与 client-only 标记会报错,类型导入被忽略。文件标记为实验性,生产构建默认报错、开发环境返回递归 Proxy 模拟。

适用场景:需要区分服务端与客户端逻辑、保护密钥、避免 hydration 不匹配、在边缘运行时正确读取环境变量的 TanStack Start 项目。具体框架包名与部署细节暂未提供。