Кастомное приложение¶
Next.js использует компонент App
для инициализации страниц. Кастомизация этого компонента позволяет делать следующее:
- распределять макет (layout) между страницами
- сохранять состояние при переключении между страницами
- обрабатывать ошибки с помощью
componentDidCatch
- внедрять в страницы дополнительные данные
- добавлять глобальные стили
Для перезаписи дефолтного App
необходимо создать файл pages/_app.js
следующего содержания:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Проп Component
— это активная страница. pageProps
— это объект с начальными пропами, которые предварительно загружаются для страницы с помощью одного из методов для получения данных, в противном случае, данный объект будет пустым.
Заметки:
- при добавлении кастомного
App
(создании файлаpages/_app.js
) при запущенном приложении может потребоваться перезапуск сервера для разработки - добавление кастомного
getInitialProps
вApp
отключает автоматическую статическую оптимизацию страниц без статической генерации - при добавлении
getInitialProps
в кастомное приложение следуетimport App from 'next/app'
, вызватьApp.getInitialProps(appContext)
внутриgetInitialProps
и объединить объект ответа с возвращаемым значением - в настоящее время
App
не поддерживает такие методы для получения данных, какgetStaticProps
илиgetServerSideProps
.