-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
🗺 Remix on Router v6.4 #4485
Comments
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
@laurencefass Remix has always used React Router 6. They built all the data loading functionality separately. Now that they moved that functionality to RR 6.4+, they are updating Remix to use those APIs instead. So Remix will be more of a server implementation of React~~ Remix Router. Remix Router is the platform-agnostic version of React Router since routing is not intrinsically tied to React. They've already built a Vue version, etc. |
Thank you. Does that mean that we will see react-router as a package json import in the future? |
@laurencefass it has always been on the package.json, you're just checking the incorrect one, here's imported remix/packages/remix-react/package.json Line 20 in 8f7100b
As you can see, right now is locked to v6.3.0, after the release of Remix they released Remix Router which is a framework agnostic router, and then made React Router v6.4.0 use Remix Router. After the work on this issue is completed Remix will be using React Router v6.4 |
If you're using React v18 you can use Suspense on SSR, but Remix doesn't support React Server Components so if you add any data-fetching inside your components that will happen in the client too. But you can use Suspense to lazy-load components based on data you fetched on your loader. Also, it's generally better to keep data fetching at the route level, since that will help you avoid waterfall of requests, if you used RSC and fetch on render, you should have to prefetch all the data somewhere (like at the route level 😉) anyway to prevent the waterfall. When #4486 is added to Remix (which is tied to this issue) you'll be able to start fetching data on your loaders but send a response immediately without waiting for the data, then use Suspense to render a fallback UI until that part of data is ready. |
Just FYI, we're locking this and all roadmap issues. Our team needs to communicate with each other on these issues so we need to keep the good-but-off-topic comments out of them. We are happy to answer questions in the discussions tab and discord! |
This is merged to |
🚧 Project Board
Updating Remix's React Router dependency to v6.4, which includes all data loading, mutations, error handling, rendering etc., but does not include streaming/deferred (that's in a different issue).
It also includes all the new APIs like
useRevalidator
, simplifiedfetcher
objects, stable routeshouldRevalidate
, etc.Decision Doc
https://github.com/remix-run/remix/blob/main/decisions/0007-remix-on-react-router-6-4-0.md
This is being done in a multi-step process to keep risk low and allow for incremental merged/deployments and avoid a single big-bang release (blog post here). Therefore we'll have a few experimental and prereleases covering different aspects of the decision doc.
Progress
0.0.0-experimental-5b4bceda6
0.0.0-experimental-b3829ed22
Issues/PRs
#4245 #4359 #4385
The text was updated successfully, but these errors were encountered: