React Academy · Oppitunti

tRPC:n käyttöönotto Reactin ja Next.js:n kanssa

Määrittäkää tRPC-reititin, proseduurit ja React-asiakasadapteri Next.js:n App Router -projektissa

Oppitunti 2/413 vaihetta

tRPC:n käyttöönotto Reactin ja Next.js:n kanssa on ilmainen React Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu React Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. React Academy-kurssilla on yhteensä 4 oppituntia.

tRPC-riippuvuuksien asentaminen

Asentakaa @trpc/server ja @trpc/client tRPC:n ydinkirjastoja varten. Lisätkää @trpc/react-query React-koukkujen adapteriksi ja @tanstack/react-query niiden toiminnasta vastaavaksi peer-riippuvuudeksi.

Next.js:n API-reittien integrointiin ei tRPC:n uusimmissa versioissa tarvita erillistä adapteripakettia.

tRPC:n alustaminen palvelimella

Luokaa server/trpc.ts-tiedosto ja kutsukaa initTRPC.create()-funktiota saadaksenne t-olion. Viekää t.router nimellä router, t.procedure nimellä publicProcedure ja t.mergeRouters apuohjelmana.

initTRPC-tehdas hyväksyy kontekstityypin geneerisenä tyyppiparametrina. Se määrittää, mitä tietoja on käytettävissä jokaisen proseduurin ctx-argumentissa.

Ensimmäisen proseduurin määrittäminen

Proseduuri määritetään ketjuttamalla .input(zodSchema).query(handler) tai .mutation(handler) publicProcedureen. Yksinkertainen hello-päätepiste voidaan määrittää näin: publicProcedure.input(z.object({ name: z.string() })).query(({ input }) => "Hello " + input.name).

Zod-skeema tarjoaa sekä TypeScript-tyypit että syötteen ajonaikaisen validoinnin.

Sovelluksen reitittimen rakentaminen

Luokaa appRouter käyttämällä router()-funktiota: router({ hello: helloHandler, users: usersRouter }). Sisäkkäisten reitittimien avulla voitte järjestää proseduurit toimialueen mukaan (users, posts, comments) erillisiin tiedostoihin.

Viekää AppRouter-tyyppi: export type AppRouter = typeof appRouter. Asiakas tuo juuri tämän tyypin.

Next.js:n API-reittikäsittelijä

Luokaa app/api/trpc/[trpc]/route.ts (App Router) tai pages/api/trpc/[trpc].ts (Pages Router). Käyttäkää @trpc/server/adapters/fetch-paketin fetchRequestHandler-funktiota kaikkien tRPC-pyyntöjen käsittelyyn tämän yhden kaikkiin pyyntöihin vastaavan reitin kautta.

Välittäkää fetchRequestHandler-funktiolle reititin, createContext-funktio sekä request- ja response-oliot.

tRPC-asiakkaan luominen Reactia varten

Luokaa utils/trpc.ts-tiedosto. Kutsukaa createTRPCReact()-funktiota tyypitetyn trpc-asiakasolion luomiseksi. Oliolla on ominaisuus jokaista reitittimen proseduuria varten, ja kukin ominaisuus tarjoaa React Query -koukut.

AppRouter-tyyppi tuodaan palvelintiedostosta. TypeScript seuraa import-ketjua ja tarkistaa kaikkien käyttötapojen tyypit.

QueryClientin ja TRPCProviderin määritys

Luokaa sovelluksen layoutissa tai _app.tsx-tiedostossa QueryClient-olio ja tRPC-asiakasolio käyttämällä seuraavaa määritystä: trpc.createClient({ links: [httpBatchLink({ url: '/api/trpc' })] }).

Ympäröikää komponenttipuu sekä trpc.Providerilla (tRPC-asiakkaan kanssa) että QueryClientProviderilla (QueryClientin kanssa). Molempia providereita tarvitaan.

Ensimmäisen tRPC-kyselyn tekeminen

Missä tahansa komponentissa voitte käyttää seuraavaa koodia: const { data, isLoading, error } = trpc.hello.useQuery({ name: 'World' }). Hook on täysin tyypitetty: data on hello-proseduurin päätellyn paluuarvon tyyppi, ja syöteolio tarkistetaan Zod-skeemaa vasten.

Virheellisen syötetyypin välittäminen aiheuttaa TypeScriptin käännösvirheen, ei ajonaikaista virhettä.

TypeScript-projektiviittaukset

Jotta tRPC toimii, asiakkaan on voitava tuoda tyyppejä palvelintiedostosta. Next.js-projektissa palvelimen ja asiakkaan koodi käännetään saman TypeScript-käännöksen yhteydessä, joten import-lauseet toimivat suoraan.

Erillisiä paketteja sisältävässä monorepossa määrittäkää TypeScript-projektiviittaukset tai tsconfig.json-tiedoston polkualiaset osoittamaan palvelinpakettiin.

Ympäristöjen väliset erot

tRPC-käsittelijä suoritetaan palvelimella (Next.js:n API-reittinä tai Edge Function -funktiona). tRPC-asiakas suoritetaan selaimessa. TypeScript käsittelee tyyppitason import-lauseet käännösaikana suorittamatta palvelinkoodia selaimessa.

Asiakas tuo vain AppRouter-tyypin, ei varsinaista toteutusta, joten palvelimen salaisuudet eivät päädy asiakkaan pakettiin.

Määrityksen testaaminen

Käynnistäkää Next.js:n kehityspalvelin ja avatkaa selaimen konsoli. trpc.hello.useQuery-kutsun pitäisi kirjata palvelimen vastaus. Tarkistakaa Network-välilehdeltä HTTP-pyyntö osoitteeseen /api/trpc/hello, jonka input on välitetty kyselyparametrina.

Oletusarvoinen httpBatchLink yhdistää useita samanaikaisia pyyntöjä yhdeksi HTTP-kutsuksi, minkä näkee verkon waterfall-näkymässä.

tRPC-palvelimen reitittimen määritys

Mikä funktio alustaa tRPC-instanssin ja tarjoaa reititin- ja proseduuritehtaat?

Oppitunnin kertaus

Asentakaa @trpc/server, @trpc/client, @trpc/react-query ja @tanstack/react-query. Alustakaa tRPC initTRPC.create()-kutsulla, määrittäkää proseduurit ja viekää AppRouter-tyyppi. Luokaa Next.js:n kaikkiin pyyntöihin vastaava API-reitti, määrittäkää TRPCProvider ja QueryClientProvider ja kutsukaa sen jälkeen proseduuria muodossa trpc.procedureName.useQuery().

TypeScript valvoo koko asiakkaan ja palvelimen välisen sopimuksen käännösaikana ilman koodin generointia.

Aloita maksutta

Opi React tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
88
Oppitunnit
324

Usein kysytyt kysymykset

Onko oppitunti ”tRPC:n käyttöönotto Reactin ja Next.js:n kanssa” ilmainen?

Kyllä – oppitunnin ”tRPC:n käyttöönotto Reactin ja Next.js:n kanssa” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko React Academy-kurssin, päivitä CoddyKit PROhon. React Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”tRPC:n käyttöönotto Reactin ja Next.js:n kanssa”?

Määrittäkää tRPC-reititin, proseduurit ja React-asiakasadapteri Next.js:n App Router -projektissa Harjoittelet React Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni React Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin React Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”tRPC:n käyttöönotto Reactin ja Next.js:n kanssa”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä React Academy-oppitunnilla?

Kyllä. Jokainen React Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. tRPC:n ratkaisema ongelma
  2. tRPC:n käyttöönotto Reactin ja Next.js:n kanssa
  3. Kyselyt, mutaatiot ja tilaukset
  4. tRPC:n integrointi React Queryn ja Authin kanssa
← Takaisin: React Academy