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
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
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.
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
- tRPC:n ratkaisema ongelma
- tRPC:n käyttöönotto Reactin ja Next.js:n kanssa
- Kyselyt, mutaatiot ja tilaukset
- tRPC:n integrointi React Queryn ja Authin kanssa