设置 tRPC 客户端
非官方测试版翻译
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
1. 安装 tRPC 客户端库
使用你喜欢的包管理器安装 @trpc/client 库,同时安装包含必需类型的 @trpc/server。
- npm
- yarn
- pnpm
- bun
bashnpm install @trpc/client @trpc/server
bashnpm install @trpc/client @trpc/server
bashyarn add @trpc/client @trpc/server
bashyarn add @trpc/client @trpc/server
bashpnpm add @trpc/client @trpc/server
bashpnpm add @trpc/client @trpc/server
bashbun add @trpc/client @trpc/server
bashbun add @trpc/client @trpc/server
2. 导入你的应用路由
非官方测试版翻译
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
将你的 AppRouter 类型导入客户端应用中。该类型包含了整个 API 的结构定义。
tsimport type {AppRouter } from '../server/router';
tsimport type {AppRouter } from '../server/router';
技巧
使用 import type 可以确保类型引用在编译时被剥离,避免无意中将服务端代码导入客户端。更多信息请参阅 TypeScript 文档。
3. 初始化 tRPC 客户端
使用 createTRPCProxyClient 方法创建 tRPC 客户端,并在 links 数组中添加指向你 API 的终止链接。了解更多关于 tRPC 链接的信息,请点击此处。
client.tstsimport { createTRPCProxyClient, httpBatchLink } from '@trpc/client';import type { AppRouter } from '../path/to/server/trpc';const client = createTRPCProxyClient<AppRouter>({links: [httpBatchLink({url: 'http://localhost:3000/trpc',// You can pass any HTTP headers you wish hereasync headers() {return {authorization: getAuthCookie(),};},}),],});
client.tstsimport { createTRPCProxyClient, httpBatchLink } from '@trpc/client';import type { AppRouter } from '../path/to/server/trpc';const client = createTRPCProxyClient<AppRouter>({links: [httpBatchLink({url: 'http://localhost:3000/trpc',// You can pass any HTTP headers you wish hereasync headers() {return {authorization: getAuthCookie(),};},}),],});
4. 使用 tRPC 客户端
底层实现会创建类型化的 JavaScript Proxy,让你能够以完全类型安全的方式与 tRPC API 交互:
client.tstsconst bilbo = await client.getUser.query('id_bilbo');// => { id: 'id_bilbo', name: 'Bilbo' };const frodo = await client.createUser.mutate({ name: 'Frodo' });// => { id: 'id_frodo', name: 'Frodo' };
client.tstsconst bilbo = await client.getUser.query('id_bilbo');// => { id: 'id_bilbo', name: 'Bilbo' };const frodo = await client.createUser.mutate({ name: 'Frodo' });// => { id: 'id_frodo', name: 'Frodo' };
全部设置完成!