Sammanslagning av Routrar
Inofficiell Beta-översättning
Denna sida har översatts av PageTurner AI (beta). Inte officiellt godkänd av projektet. Hittade du ett fel? Rapportera problem →
Att skriva all API-kod i samma fil kan bli svårhanterligt. Det är enkelt att sammanslå routrar för att bryta upp dem.
Sammanslagning med underordnade routrar
routers/user.tstsimport {router ,publicProcedure } from '../trpc';import {z } from 'zod';export constuserRouter =router ({list :publicProcedure .query (() => {// [..]return [];}),});
routers/user.tstsimport {router ,publicProcedure } from '../trpc';import {z } from 'zod';export constuserRouter =router ({list :publicProcedure .query (() => {// [..]return [];}),});
routers/post.tstsimport {router ,publicProcedure } from '../trpc';import {z } from 'zod';export constpostRouter =router ({create :publicProcedure .input (z .object ({title :z .string (),}),).mutation ((opts ) => {const {input } =opts ;// [...]}),list :publicProcedure .query (() => {// ...return [];}),});
routers/post.tstsimport {router ,publicProcedure } from '../trpc';import {z } from 'zod';export constpostRouter =router ({create :publicProcedure .input (z .object ({title :z .string (),}),).mutation ((opts ) => {const {input } =opts ;// [...]}),list :publicProcedure .query (() => {// ...return [];}),});
routers/_app.tstsimport {router } from '../trpc';import {userRouter } from './user';import {postRouter } from './post';constappRouter =router ({user :userRouter ,post :postRouter ,});appRouter .user appRouter .post export typeAppRouter = typeofappRouter ;
routers/_app.tstsimport {router } from '../trpc';import {userRouter } from './user';import {postRouter } from './post';constappRouter =router ({user :userRouter ,post :postRouter ,});appRouter .user appRouter .post export typeAppRouter = typeofappRouter ;
Sammanslagning med t.mergeRouters
Om du föredrar att ha alla procedurer platta i ett enda namnutrymme kan du istället använda t.mergeRouters
routers/user.tstsimport {router ,publicProcedure } from '../trpc';import {z } from 'zod';export constuserRouter =router ({userList :publicProcedure .query (() => {// [..]return [];}),});
routers/user.tstsimport {router ,publicProcedure } from '../trpc';import {z } from 'zod';export constuserRouter =router ({userList :publicProcedure .query (() => {// [..]return [];}),});
routers/post.tstsimport {router ,publicProcedure } from '../trpc';import {z } from 'zod';export constpostRouter =router ({postCreate :publicProcedure .input (z .object ({title :z .string (),}),).mutation ((opts ) => {const {input } =opts ;// [...]}),postList :publicProcedure .query (() => {// ...return [];}),});
routers/post.tstsimport {router ,publicProcedure } from '../trpc';import {z } from 'zod';export constpostRouter =router ({postCreate :publicProcedure .input (z .object ({title :z .string (),}),).mutation ((opts ) => {const {input } =opts ;// [...]}),postList :publicProcedure .query (() => {// ...return [];}),});
routers/_app.tstsimport {mergeRouters } from '../trpc';import {userRouter } from './user';import {postRouter } from './post';constappRouter =mergeRouters (userRouter ,postRouter );export typeAppRouter = typeofappRouter ;
routers/_app.tstsimport {mergeRouters } from '../trpc';import {userRouter } from './user';import {postRouter } from './post';constappRouter =mergeRouters (userRouter ,postRouter );export typeAppRouter = typeofappRouter ;
Dynamisk inläsning av routrar
Du kan använda funktionen lazy för att dynamiskt ladda dina routrar. Detta kan vara användbart för att minska kallstarter i din applikation. Det finns ingen skillnad i hur du använder routern efter dynamisk inläsning jämfört med en vanlig router.
routers/greeting.tstsimport {router ,publicProcedure } from '../trpc';export constgreetingRouter =router ({hello :publicProcedure .query (() => 'world'),});
routers/greeting.tstsimport {router ,publicProcedure } from '../trpc';export constgreetingRouter =router ({hello :publicProcedure .query (() => 'world'),});
routers/user.tstsimport {router ,publicProcedure } from '../trpc';export constuserRouter =router ({list :publicProcedure .query (() => ['John', 'Jane', 'Jim']),});
routers/user.tstsimport {router ,publicProcedure } from '../trpc';export constuserRouter =router ({list :publicProcedure .query (() => ['John', 'Jane', 'Jim']),});
routers/_app.tstsimport {lazy } from '@trpc/server';import {router } from '../trpc';export constappRouter =router ({// Option 1: Short-hand when the module has exactly 1 router exportedgreeting :lazy (() => import('./greeting.js')),// Option 2: if exporting more than 1 routeruser :lazy (() => import('./user.js').then ((m ) =>m .userRouter )),});export typeAppRouter = typeofappRouter ;
routers/_app.tstsimport {lazy } from '@trpc/server';import {router } from '../trpc';export constappRouter =router ({// Option 1: Short-hand when the module has exactly 1 router exportedgreeting :lazy (() => import('./greeting.js')),// Option 2: if exporting more than 1 routeruser :lazy (() => import('./user.js').then ((m ) =>m .userRouter )),});export typeAppRouter = typeofappRouter ;