Menyiapkan tRPC dengan React dan Next.js
Konfigurasikan router tRPC, prosedur, dan adaptor klien React dalam proyek Next.js App Router.
Menyiapkan tRPC dengan React dan Next.js adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar React Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus React Academy mencakup 4 pelajaran total.
Menginstal Dependensi tRPC
Instal @trpc/server dan @trpc/client untuk paket inti tRPC. Tambahkan @trpc/react-query sebagai adaptor kait React dan @tanstack/react-query sebagai dependensi rekan yang mendukung kait tersebut.
Untuk integrasi rute API Next.js, versi terbaru tRPC tidak memerlukan paket adaptor tambahan.
Menginisialisasi tRPC di Server
Buat file server/trpc.ts dan panggil initTRPC.create() untuk mendapatkan objek t. Ekspor t.router sebagai router, t.procedure sebagai publicProcedure, dan t.mergeRouters sebagai utilitas.
Pabrik initTRPC menerima generik tipe konteks yang menentukan data apa yang tersedia dalam argumen ctx setiap prosedur.
Mendefinisikan Prosedur Pertama Anda
Prosedur didefinisikan dengan merangkai .input(zodSchema).query(handler) atau .mutation(handler) ke publicProcedure. Untuk titik akhir sapaan sederhana: publicProcedure.input(z.object({ name: z.string() })).query(({ input }) => "Hello " + input.name).
Skema Zod menyediakan tipe TypeScript sekaligus validasi saat waktu proses untuk masukan tersebut.
Membangun Router Aplikasi
Buat appRouter menggunakan fungsi router(): router({ hello: helloHandler, users: usersRouter }). Router bertingkat memungkinkan Anda mengatur prosedur berdasarkan domain (pengguna, postingan, komentar) ke dalam file terpisah.
Ekspor tipe AppRouter: export type AppRouter = typeof appRouter. Tipe inilah yang akan diimpor oleh klien.
Penangan Rute API Next.js
Buat app/api/trpc/[trpc]/route.ts (App Router) atau pages/api/trpc/[trpc].ts (Pages Router). Gunakan fetchRequestHandler dari @trpc/server/adapters/fetch untuk menangani semua permintaan tRPC melalui satu rute penangkap-semua.
Teruskan router, fungsi createContext, serta objek permintaan/respons ke fetchRequestHandler.
Membuat Klien tRPC untuk React
Buat file utils/trpc.ts. Panggil createTRPCReact
Impor tipe AppRouter berasal dari file server; TypeScript mengikuti rantai impor untuk memvalidasi semua penggunaannya.
Menyiapkan QueryClient dan TRPCProvider
Di tata letak aplikasi atau _app.tsx Anda, buat instans QueryClient dan instans klien tRPC menggunakan trpc.createClient({ links: [httpBatchLink({ url: '/api/trpc' })] }).
Bungkus pohon komponen Anda dengan trpc.Provider (menggunakan klien trpc) dan QueryClientProvider (menggunakan QueryClient). Kedua penyedia tersebut diperlukan.
Membuat Kueri tRPC Pertama Anda
Di komponen mana pun: const { data, isLoading, error } = trpc.hello.useQuery({ name: 'World' }). Kait ini memiliki tipe lengkap: data adalah tipe hasil yang disimpulkan dari prosedur hello, dan objek masukan diperiksa tipenya berdasarkan skema Zod.
Memberikan tipe masukan yang salah akan menghasilkan kesalahan kompilasi TypeScript, bukan kesalahan saat waktu proses.
Referensi Proyek TypeScript
Agar tRPC dapat berfungsi, klien harus dapat mengimpor tipe dari file server. Dalam proyek Next.js, kode server dan klien menggunakan kompilasi TypeScript yang sama, sehingga impor dapat langsung digunakan.
Dalam monorepo dengan paket terpisah, konfigurasikan referensi proyek TypeScript atau alias jalur di tsconfig.json agar mengarah ke paket server.
Perbedaan Lingkungan
Penangan tRPC berjalan di server (sebagai rute API Next.js atau Edge Function). Klien tRPC berjalan di peramban. TypeScript mengevaluasi impor tingkat tipe pada waktu build tanpa menjalankan kode server di peramban.
Hanya tipe AppRouter yang diimpor oleh klien, bukan implementasi sebenarnya, sehingga rahasia server tidak bocor ke bundel klien.
Menguji Penyiapan
Jalankan server pengembangan Next.js dan buka konsol peramban. Panggilan trpc.hello.useQuery seharusnya mencatat respons server. Periksa tab Network untuk melihat permintaan HTTP ke /api/trpc/hello dengan masukan yang dikirim sebagai parameter kueri.
Secara bawaan, httpBatchLink menggabungkan beberapa permintaan serentak menjadi satu panggilan HTTP, yang terlihat pada urutan permintaan jaringan.
Menyiapkan Router Server
Fungsi apa yang menginisialisasi instans tRPC dan menyediakan pabrik router serta prosedur?
Ringkasan Pelajaran
Instal @trpc/server, @trpc/client, @trpc/react-query, dan @tanstack/react-query. Inisialisasi tRPC dengan initTRPC.create(), definisikan prosedur, lalu ekspor tipe AppRouter. Buat rute penangkap-semua API Next.js, siapkan TRPCProvider dan QueryClientProvider, lalu panggil prosedur dengan trpc.procedureName.useQuery().
TypeScript menegakkan seluruh kontrak antara klien dan server pada waktu kompilasi tanpa pembuatan kode.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Menyiapkan tRPC dengan React dan Next.js” gratis?
Ya — teks lengkap “Menyiapkan tRPC dengan React dan Next.js” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus React Academy, upgrade ke CoddyKit PRO. Kursus React Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Menyiapkan tRPC dengan React dan Next.js”?
Konfigurasikan router tRPC, prosedur, dan adaptor klien React dalam proyek Next.js App Router. Kamu berlatih React Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai React Academy?
Tidak diperlukan pengalaman sebelumnya. React Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Menyiapkan tRPC dengan React dan Next.js” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran React Academy ini?
Ya. Setiap pelajaran React Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Masalah yang Diselesaikan tRPC
- Menyiapkan tRPC dengan React dan Next.js
- Query, Mutasi, dan Subscription
- Mengintegrasikan tRPC dengan React Query dan Autentikasi