Next.js에서 _app.js는 초기에 기본 페이지들의 component로 사용된다. 당신은 _app.js를 페이지들에서 사용하거나 무시할 수 있다.
_app.js의 기능들은 아래와 같다.
예시 코드는 아래와 같다
import React from 'react'
import App from 'next/app'
class MyApp extends App {
// Only uncomment this method if you have blocking data requirements for
// every single page in your application. This disables the ability to
// perform automatic static optimization, causing every page in your app to
// be server-side rendered.
//
// static async getInitialProps(appContext) {
// // calls page's `getInitialProps` and fills `appProps.pageProps`
// const appProps = await App.getInitialProps(appContext);
//
// return { ...appProps }
// }
render() {
const { Component, pageProps } = this.props
return <Component {...pageProps} />
}
}
export default MyApp
layout 기능으로 사용예시
import React from 'react'
import App from 'next/app'
class Layout extends React.Component {
render () {
const { children } = this.props
return <div className='layout'>{children}</div>
}
}
export default class MyApp extends App {
render () {
const { Component, pageProps } = this.props
return (
<Layout>
<Component {...pageProps} />
</Layout>
)
}
}
componentdidcatch로 사용예시
import App from 'next/app'
export default class MyApp extends App {
componentDidCatch (error, errorInfo) {
console.log('CUSTOM ERROR HANDLING', error)
// This is needed to render errors correctly in development / production
super.componentDidCatch(error, errorInfo)
}
}
참고
https://nextjs.org/docs
https://salgum1114.github.io/nextjs/2019-05-21-nextjs-static-website-3/