_app.js
Podemos ter o _app.js para customizar a nossa inicialização das páginas fazendo bastante coisa legal:
- Layout persistente entre as mudanças de página
- Manter o estado ao navegar nas páginas
- Tratamento de erros personalizado usando
componentDidCatch - Injetar dados adicionais nas páginas
- Adicionar CSS global
Para que a gente possa substituir o App padrão nos só precisamos criar pages/_app.js .
function MyApp({ Component, pageProps }) {
return <Component {...pageProps} />}
export default MyApp
O Componentprop é o ativo page, então sempre que você navegar entre as rotas o Componentmudará para o novo page que você solicitou.
Portanto, todas as propriedades que você enviar no Componentserão recebidos pelo page.
pagePropsé um objeto com as propriedades iniciais que foram pré-carregadas para sua página por um dos métodos de busca de dados , caso contrário, é um objeto vazio.
Ressalvas
- Se seu aplicativo estiver em execução e você acabou de adicionar um personalizado
App, será necessário reiniciar o servidor de desenvolvimento. Requerido apenas sepages/_app.jsnão existisse antes. - Adicionar um custom
getInitialPropsem seuAppirá desabilitar a Otimização Estática Automática em páginas sem Geração Estática . Appatualmente não suporta métodos de busca de dados Next.js como getStaticPropsou getServerSideProps.


