Comments (5)
A quick search shows they are documented in a handful of places. We're always open to improvements so if you have specific suggestions of how they could be better surfaced please let us know!
https://reactrouter.com/en/main/start/overview#nested-routes
https://reactrouter.com/en/main/start/tutorial#nested-routes
https://reactrouter.com/en/main/routers/create-browser-router#routes
https://reactrouter.com/en/main/components/outlet
from react-router.
I looked at the documentation at the links you provided.
Honestly I probably looked at that documentation whilst I was searching and it looks nothing like nested routes to me.
There is no clear and simple explanation of how for example I can have routes in a separate component.
from react-router.
Ah ok - I see the confusion now. You're not talking about what we call "Nested Routes" which is nesting UI based on the URL via <Outlet>
. You're referring to what we call "Descendant Routes" which lets you define and render additional <Route>
components deep in the tree via <Routes>
.
These are somewhat intentionally less documented as they're an older pattern that is no longer recommended since it encourages data fetching waterfalls. The new Data APIs (createBrowserRouter
/RouterProvider
) decouple fetching from rendering which can lead to much better app performance. Routes rendered via descendant <Routes>
cannot leverage the Data APIs. See Picking a Router for more info.
One of the biggest reasons folks reached for descendant <Routes>
in prior versions was to code split sections of the route tree out of the critical bundle. When using the data APIs, we recommend using route.lazy
which gets you most of the way there and if that doesn't go far enough, we've recently released a new feature we call "Fog of War" that leys you lazily load entir eportions of the route tree: in unstable_patchoutesOnMiss
that may be of interest.
I would also suggest checking out the When to Fetch conference talk from Ryan and there two blog posts (post, post) for more information on this move towards the Data APIs
from react-router.
Just not documenting a common pattern because it's frowned upon is less effective than discussing it and the issues.
from react-router.
It is documented, here and in the <Routes>
component. And the downsides are called out on the <Routes>
component docs:
Do you have any specific feedback on where we could better explain this?
from react-router.
Related Issues (20)
- [Bug]: Uncaught Error: Expected fetch controller: xxx HOT 2
- [Docs]: warning references to polyfill.io, which is found to serve malware HOT 2
- [Docs]: Tutorial missing imports within 'contacts.js'. [ "match-sorter" , "localforage" , "sort-by" ] HOT 1
- [Bug]: history.listen not triggered on hash changes HOT 1
- [Bug]: Update comments recommending to use polyfill.io HOT 3
- [Bug]: unstable_patchRoutesOnMiss is superseded by "*" (404) HOT 3
- [Bug]: unstable_patchRoutesOnMiss leaf ignored when patching sub-trees asyncronously HOT 3
- [Bug]: Functional updates to `useSearchParams` don't get updated values HOT 2
- Update to isbot@5 HOT 1
- [Bug]: `unstable_patchRoutesOnMiss` remote module error-handling HOT 13
- [Bug]: useMatch does not decode params HOT 4
- [Bug]: Could not resolve './utils' from packages/router/index.ts HOT 2
- [Bug]: Link when used with Outlet is not working. It is routing to error page when clicked. HOT 1
- [Bug]: setSearchParams from useSearchParams remove hash HOT 1
- [Bug]: HashRouter need to wrapped twice HOT 1
- [Docs]: docs show reach/router instead of react/router HOT 2
- [Bug]: "react-router-dom-v5-compat" <CompatRouter> doesn't unsubscribe from history potentially causing tests to memory leak HOT 2
- [Bug]: child loader redirect overrides parent loader error HOT 7
- [Bug]: v7_partialHydration with unstable_patchRoutesOnMiss: hydrateFallbackElement not shown on patched routes HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-router.