You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Volto is using currently React Router 5, which is unmantained. It is used in combination of AsyncConnect which provides support for data fetching in SSR. AsyncConnect is also ancient and no longer maintained.
Modern React Routers solve routing subjects in a more performant, efficient, and convenient way.
We should update the current React Router 5 + AsyncConnect with a modern router.
React Router 7 it's the initial choice and it was relased in Nov'24. It's the evolution from Remix so it's a mature, and React compliant solution. It also has the experience on the custom build and improvements done in Remix.
Assumptions
No assumptions.
Proposal & Implementation
React Router needs to be updated and we will opt-in to use the custom SSR server from Remix. AsyncConnect needs to be removed, and replaced by RR7 loaders.
We will have to adapt the declaration of routes to the new routes.ts definitions in RR7, and generate the dynamic ones coming from addons, probably using @plone/registry for that.
Deliverables
Volto will be using RR7, and AsyncConnect removed from all routes.
Volto should behave as it did before.
Documentation on how to create new routes and make the transition to the new way will be provided as well.
Risks
Addons and projects relying on AsyncConnect will have to adapt to use the RR7 way of doing things.
This PLIP is targeted for Plone 7.
PLIP (Plone Improvement Proposal)
Responsible Persons
Proposer: Víctor Fernández de Alba (@sneridagh)
Seconder: Piero Nicoli (@pnicolli) Alok Kumar (@iFlameing)
Motivation
Volto is using currently React Router 5, which is unmantained. It is used in combination of
AsyncConnect
which provides support for data fetching in SSR.AsyncConnect
is also ancient and no longer maintained.Modern React Routers solve routing subjects in a more performant, efficient, and convenient way.
We should update the current React Router 5 +
AsyncConnect
with a modern router.React Router 7 it's the initial choice and it was relased in Nov'24. It's the evolution from Remix so it's a mature, and React compliant solution. It also has the experience on the custom build and improvements done in Remix.
Assumptions
No assumptions.
Proposal & Implementation
React Router needs to be updated and we will opt-in to use the custom SSR server from Remix.
AsyncConnect
needs to be removed, and replaced by RR7loaders
.We will have to adapt the declaration of routes to the new
routes.ts
definitions in RR7, and generate the dynamic ones coming from addons, probably using@plone/registry
for that.Deliverables
Volto will be using RR7, and
AsyncConnect
removed from all routes.Volto should behave as it did before.
Documentation on how to create new routes and make the transition to the new way will be provided as well.
Risks
Addons and projects relying on
AsyncConnect
will have to adapt to use the RR7 way of doing things.This PLIP is targeted for Plone 7.
Participants
Víctor Fernández de Alba (@sneridagh)
Piero Nicoli (@pnicolli)
Alok Kumar (@iFlameing)
The text was updated successfully, but these errors were encountered: