用途:在客户端与服务端共享同一代码库的 TypeScript 全栈项目(如 Next.js、Remix、Express + React)中,用 tRPC 构建无需 schema 或代码生成步骤的端到端类型安全 API;也适用于为现有 tRPC 添加实时订阅、设计多步中间件,或从 REST/GraphQL 渐进迁移。
主要能力:路由器与过程(query 读、mutation 写、subscription 实时流);用 Zod 校验过程输入;context 共享状态(会话、数据库客户端、请求头);中间件链用于鉴权、日志与请求增强,并可扩展下游 context;React Query 客户端集成与缓存失效;WebSocket 订阅。
使用方式:安装 npm install @trpc/server @trpc/client @trpc/react-query @tanstack/react-query zod;用 initTRPC 创建实例与 router、publicProcedure、middleware;定义 context 工厂(App Router 用 fetch 版 createTRPCContext,服务端调用用 createServerContext);用 middleware 构建 protectedProcedure;按领域拆分路由器并在 root 合并,仅导出 AppRouter 类型;App Router 用 fetchRequestHandler 挂载 /api/trpc;客户端用 createTRPCReact 与 httpBatchLink 配置 Provider;组件中用 trpc.post.list.useQuery、useMutation 与 utils.invalidate();Server Component 用 createCallerFactory 调用。
限制与注意:仅导出 AppRouter 类型,客户端不要导入 appRouter;App Router 必须用 @trpc/server/adapters/fetch,nextjs 适配器仅用于 Pages Router;订阅需 splitLink 将订阅路由到 wsLink;鉴权须在 protectedProcedure 中强制,输入全部用 Zod 校验,避免向客户端暴露内部错误细节,公开过程应限流。资料未提供收费、价格与平台信息。