3 ms·
The Next.js team keeps hiding the usefulness of React Server Component for the ease of development and Vercel deployment. It's a gatekeeper at its best. Why no
by revskill 2y ago
The Next.js team keeps hiding the usefulness of React Server Component for the ease of development and Vercel deployment. It's a gatekeeper at its best.
Why not exposing an API for RSC so that i can imperatively fetch a RSC page with normal fetch call ? Why hiding such a killer feature so that you don't need HTMX anymore.
Also, why conventionally forcing the "RSC page" can't access the Request object in lue of caching. Instead of flexibility of a framework, you force things which users don't prioritize.
Ah, one last point, file system routing without anyway to opt-out is a red flag of the architecture as well.
- leerob 2y agoRe: why can't I access request: https://nextjs.org/docs/app#how-can-i-access-the-request-object-in-a-layout https://nextjs.org/docs/app#how-can-i-access-the-request-obj... If filesystem routing isn't something you enjoy, Next.js probably isn't the right tool for you.
- hu3 2y ago> You intentionally cannot access the raw request object. However, you can access headers and cookies through server-only functions. You can also set cookies. > Layouts do not rerender. They can be cached and reused to avoid unnecessary computation when navigating between pages. By restricting layouts from accessing the raw request, Next.js can prevent the execution of potentially slow or expensive user code within the layout, which could negatively impact performance. I don't like this limiting "I know best what's good for you" attitude in my tooling. Yes limits are desirable to avoid footguns but this seems like too dumbed down of a restriction for little gain.
- citizenpaul 2y agoDo some people prefer using filesystem routing? I don't think I've used it before but it sounds clunky.
- mzronek 2y agoYou can opt out by using a single (optional) catchall route and handle the path all by yourself. This is sometimes necessary to handle CMS pages for example. Docs: https://nextjs.org/docs/app/building-your-application/routing/dynamic-routes#optional-catch-all-segments https://nextjs.org/docs/app/building-your-application/routin...