Customizing _app.js and _document.js pages
There are certain cases where you need to take control over page initialization, so that every time we render a page, Next.js will need to run certain operations before sending the resulting HTML to the client. To do that, the framework allows us to create two new files, called _app.js
and _document.js
, inside our pages/
directory.
The _app.js page
By default, Next.js ships with the following pages/_app.js file:
import '../styles/globals.css' function MyApp({ Component, pageProps }) { return <Component {...pageProps} /> } export default MyApp
As you can see, the function is just returning the Next.js page component (the Component
prop) and its props (pageProps
).
But now, let's say that we want to share a navigation bar between all the pages without manually importing that component on each page. We can start by creating the navbar inside components/Navbar.js
:
import Link from 'next/link...