0Pricing
React Academy · Lektion

tRPC mit React und Next.js einrichten

Einen tRPC-Router, Prozeduren und den React-Client-Adapter in einem Next.js-App-Router-Projekt konfigurieren

tRPC mit React und Next.js einrichten ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des React Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

tRPC-Abhängigkeiten installieren

Installieren Sie @trpc/server und @trpc/client als zentrale tRPC-Pakete. Fügen Sie @trpc/react-query als Adapter für React-Hooks und @tanstack/react-query als Peer-Abhängigkeit hinzu, die die Hooks bereitstellt.

Für die Integration in Next.js-API-Routen wird in aktuellen tRPC-Versionen kein zusätzliches Adapterpaket benötigt.

tRPC auf dem Server initialisieren

Erstellen Sie die Datei server/trpc.ts und rufen Sie initTRPC.create() auf, um das t-Objekt zu erhalten. Exportieren Sie t.router als router, t.procedure als publicProcedure und t.mergeRouters als Hilfsfunktion.

Die initTRPC-Factory akzeptiert ein Generic für den Kontexttyp, das festlegt, welche Daten im ctx-Argument jeder Procedure verfügbar sind.

Ihre erste Procedure definieren

Eine Procedure wird definiert, indem Sie .input(zodSchema).query(handler) oder .mutation(handler) an publicProcedure anhängen. Für einen einfachen Hello-Endpunkt gilt: publicProcedure.input(z.object({ name: z.string() })).query(({ input }) => "Hello " + input.name).

Das Zod-Schema stellt sowohl TypeScript-Typen als auch eine Validierung der Eingaben zur Laufzeit bereit.

Den App-Router erstellen

Erstellen Sie mit der Funktion router() einen appRouter: router({ hello: helloHandler, users: usersRouter }). Verschachtelte Router ermöglichen es Ihnen, Procedures nach Fachbereich (users, posts, comments) in separaten Dateien zu organisieren.

Exportieren Sie den AppRouter-Typ: export type AppRouter = typeof appRouter. Diesen Typ importiert der Client.

Next.js-API-Routen-Handler

Erstellen Sie app/api/trpc/[trpc]/route.ts (App Router) oder pages/api/trpc/[trpc].ts (Pages Router). Verwenden Sie fetchRequestHandler aus @trpc/server/adapters/fetch, um alle tRPC-Anfragen über diese einzelne Catch-all-Route zu verarbeiten.

Übergeben Sie fetchRequestHandler den Router, die createContext-Funktion sowie die Request- und Response-Objekte.

Den tRPC-Client für React erstellen

Erstellen Sie die Datei utils/trpc.ts. Rufen Sie createTRPCReact() auf, um das typisierte trpc-Clientobjekt zu erstellen. Dieses Objekt verfügt für jede Procedure in Ihrem Router über eine Eigenschaft, die jeweils React-Query-Hooks bereitstellt.

Der AppRouter-Typ wird aus Ihrer Serverdatei importiert. TypeScript folgt der Importkette, um alle Verwendungen zu überprüfen.

QueryClient und TRPCProvider einrichten

Erstellen Sie in Ihrem App-Layout oder in _app.tsx eine QueryClient-Instanz und eine tRPC-Clientinstanz mit trpc.createClient({ links: [httpBatchLink({ url: '/api/trpc' })] }).

Umschließen Sie Ihren Komponentenbaum sowohl mit trpc.Provider (mit dem tRPC-Client) als auch mit QueryClientProvider (mit dem QueryClient). Beide Provider sind erforderlich.

Ihre erste tRPC-Abfrage ausführen

Verwenden Sie in jeder Komponente: const { data, isLoading, error } = trpc.hello.useQuery({ name: 'World' }). Der Hook ist vollständig typisiert: data entspricht dem abgeleiteten Rückgabetyp der hello-Procedure, und das Eingabeobjekt wird anhand des Zod-Schemas auf seinen Typ geprüft.

Die Übergabe eines Eingabetyps, der nicht korrekt ist, führt zu einem TypeScript-Kompilierfehler und nicht zu einem Fehler zur Laufzeit.

TypeScript-Projektreferenzen

Damit tRPC funktioniert, muss der Client Typen aus der Serverdatei importieren können. In einem Next.js-Projekt werden Server- und Clientcode innerhalb derselben TypeScript-Kompilierung verarbeitet, sodass die Importe direkt funktionieren.

Konfigurieren Sie in einem Monorepo mit getrennten Paketen TypeScript-Projektreferenzen oder Pfad-Aliase in tsconfig.json, die auf das Serverpaket verweisen.

Unterschiede zwischen den Umgebungen

Der tRPC-Handler wird auf dem Server ausgeführt (als Next.js-API-Route oder Edge Function). Der tRPC-Client läuft im Browser. TypeScript wertet typbezogene Importe zur Build-Zeit aus, ohne Servercode im Browser auszuführen.

Auf dem Client wird nur der AppRouter-Typ importiert, nicht die eigentliche Implementierung. Daher gelangen keine Servergeheimnisse in das Client-Bundle.

Die Einrichtung testen

Starten Sie den Next.js-Entwicklungsserver und öffnen Sie die Browserkonsole. Der Aufruf trpc.hello.useQuery sollte die Serverantwort protokollieren. Überprüfen Sie im Tab „Network“ die HTTP-Anfrage an /api/trpc/hello, bei der die Eingabe als Query-Parameter gebündelt wird.

Der standardmäßige httpBatchLink fasst mehrere gleichzeitige Anfragen zu einem HTTP-Aufruf zusammen, was im Netzwerk-Wasserfalldiagramm sichtbar ist.

tRPC-Server-Router einrichten

Welche Funktion initialisiert die tRPC-Instanz und stellt die Factorys für Router und Procedures bereit?

Zusammenfassung der Lektion

Installieren Sie @trpc/server, @trpc/client, @trpc/react-query und @tanstack/react-query. Initialisieren Sie tRPC mit initTRPC.create(), definieren Sie Procedures und exportieren Sie den AppRouter-Typ. Erstellen Sie die Next.js-Catch-all-Route für die API, richten Sie TRPCProvider und QueryClientProvider ein und rufen Sie Procedures mit trpc.procedureName.useQuery() auf.

TypeScript erzwingt den gesamten Client-Server-Vertrag zur Kompilierzeit, ohne dass eine Codegenerierung erforderlich ist.

Häufig gestellte Fragen

Ist die Lektion „tRPC mit React und Next.js einrichten“ kostenlos?

Ja — der vollständige Text von „tRPC mit React und Next.js einrichten“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des React Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „tRPC mit React und Next.js einrichten“?

Einen tRPC-Router, Prozeduren und den React-Client-Adapter in einem Next.js-App-Router-Projekt konfigurieren Du übst React Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um React Academy zu starten?

Keine Vorkenntnisse erforderlich. React Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „tRPC mit React und Next.js einrichten“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser React Academy-Lektion Code schreiben und ausführen?

Ja. Jede React Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Welches Problem tRPC löst
  2. tRPC mit React und Next.js einrichten
  3. Queries, Mutationen und Subscriptions
  4. tRPC mit React Query und Authentifizierung integrieren
← Zurück zu React Academy