App() — react Function Reference
Architecture documentation for the App() function in App.js from the react codebase.
Entity Profile
Dependency Diagram
graph TD 950993ef_9f07_8fd7_0a2b_608eeb83800d["App()"] d17ad6e6_5117_524c_98d3_e7c0244faa6b["App.js"] 950993ef_9f07_8fd7_0a2b_608eeb83800d -->|defined in| d17ad6e6_5117_524c_98d3_e7c0244faa6b style 950993ef_9f07_8fd7_0a2b_608eeb83800d fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
fixtures/view-transition/src/components/App.js lines 14–92
export default function App({assets, initialURL}) {
const [routerState, setRouterState] = useState({
pendingNav: () => {},
url: initialURL,
});
function navigate(url) {
if (enableNavigationAPI) {
window.navigation.navigate(url);
} else {
startTransition(() => {
setRouterState({
url,
pendingNav() {
window.history.pushState({}, '', url);
},
});
});
}
}
useEffect(() => {
if (enableNavigationAPI) {
window.navigation.addEventListener('navigate', event => {
if (!event.canIntercept) {
return;
}
const navigationType = event.navigationType;
const previousIndex = window.navigation.currentEntry.index;
const newURL = new URL(event.destination.url);
event.intercept({
handler() {
let promise;
startTransition(() => {
addTransitionType('navigation-' + navigationType);
if (navigationType === 'traverse') {
// For traverse types it's useful to distinguish going back or forward.
const nextIndex = event.destination.index;
if (nextIndex > previousIndex) {
addTransitionType('navigation-forward');
} else if (nextIndex < previousIndex) {
addTransitionType('navigation-back');
}
}
promise = new Promise(resolve => {
setRouterState({
url: newURL.pathname + newURL.search,
pendingNav: resolve,
});
});
});
return promise;
},
commit: 'after-transition', // plz ship this, browsers
});
});
} else {
window.addEventListener('popstate', () => {
// This should not animate because restoration has to be synchronous.
// Even though it's a transition.
startTransition(() => {
setRouterState({
url: document.location.pathname + document.location.search,
pendingNav() {
// Noop. URL has already updated.
},
});
});
});
}
}, []);
const pendingNav = routerState.pendingNav;
useLayoutEffect(() => {
pendingNav();
}, [pendingNav]);
return (
<Chrome title="Hello World" assets={assets}>
<Page url={routerState.url} navigate={navigate} />
</Chrome>
);
}
Domain
Subdomains
Source
Frequently Asked Questions
What does App() do?
App() is a function in the react codebase, defined in fixtures/view-transition/src/components/App.js.
Where is App() defined?
App() is defined in fixtures/view-transition/src/components/App.js at line 14.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free