With React Server Components getting more traction, this idea of each component being able to fetch its own data seems to getting more popular rather than data-fetching being purely route-based.
In Remix-land, you’ve had a talk about “full-stack components” with a similar concept where a “resource route” can have no default exports but still export a loader and a React component in order to have a reusable component with its own data fetching.
It seems there might be differences between React Server Components and these “full-stack components” though, especially in that Server Components don’t need to be defined in routes but Remix full-stack components do.
Firstly, how are the two approaches different?
I ask, because I know Remix is working on implementing Server Components without the foot-guns, so curious what how the mental model would change in the future.
You, also said that it isn’t a good practice to get into to commonly import components from other routes.
My second question is why is it not a good practice, and can you give examples for cases where it would or wouldn’t make sense to import full-stack components from other routes?
Thank you!
Remix Full-Stack Components (vs Server Components)