mirror of
https://github.com/facebook/docusaurus.git
synced 2025-04-29 18:27:56 +02:00
refactor(core): optimize App entrypoint, it should not re-render when navigating (#10060)
This commit is contained in:
parent
c746289db2
commit
eb07e9d6d4
1 changed files with 13 additions and 5 deletions
|
@ -25,9 +25,19 @@ import SiteMetadataDefaults from './SiteMetadataDefaults';
|
|||
import ErrorBoundary from '@docusaurus/ErrorBoundary';
|
||||
import HasHydratedDataAttribute from './hasHydratedDataAttribute';
|
||||
|
||||
export default function App(): JSX.Element {
|
||||
const routeElement = renderRoutes(routes);
|
||||
const routesElement = renderRoutes(routes);
|
||||
|
||||
function AppNavigation() {
|
||||
const location = useLocation();
|
||||
const normalizedLocation = normalizeLocation(location);
|
||||
return (
|
||||
<PendingNavigation location={normalizedLocation}>
|
||||
{routesElement}
|
||||
</PendingNavigation>
|
||||
);
|
||||
}
|
||||
|
||||
export default function App(): JSX.Element {
|
||||
return (
|
||||
<ErrorBoundary>
|
||||
<DocusaurusContextProvider>
|
||||
|
@ -36,9 +46,7 @@ export default function App(): JSX.Element {
|
|||
<SiteMetadataDefaults />
|
||||
<SiteMetadata />
|
||||
<BaseUrlIssueBanner />
|
||||
<PendingNavigation location={normalizeLocation(location)}>
|
||||
{routeElement}
|
||||
</PendingNavigation>
|
||||
<AppNavigation />
|
||||
</Root>
|
||||
<HasHydratedDataAttribute />
|
||||
</BrowserContextProvider>
|
||||
|
|
Loading…
Add table
Reference in a new issue