Have a look at the react-query docs, you need to change your mindset a little but it's much better than calling promises in useEffect as it eliminates a whole load of potential bugs
tRPC has a standard client you can use, it's just not necessarily recommended in a frontend because react-query solves a lot of frontend problems, but you can use it alongside the react client https://trpc.io/docs/vanilla
The magic of tRPC is making strongly typed API calls without relying on code generation. With full-stack TypeScript projects, you can directly import types from the server into the client! This is a vital part of how tRPC works.