作用

  • 固定Layout
  • 保持一些公用状态
  • 给页面传入一些自定义数据
  • 自定义一些错误处理
  1. import App, { Container } from 'next/app'
  2. import Layout from '../layout'
  3. import 'antd/dist/antd.css'
  4. class MyApp extends App {
  5. static async getInitialProps ({ Component }) {
  6. // 每一次页面切换都会被调用
  7. let pageProps
  8. if (Component.getInitialProps) {
  9. pageProps = await Component.getInitialProps()
  10. }
  11. return { pageProps }
  12. }
  13. render() {
  14. // Component 是每一个页面
  15. const { Component, pageProps } = this.props
  16. return (
  17. <Container>
  18. // 全局的组件
  19. <Layout></Layout>
  20. <Component { ...pageProps }/>
  21. </Container>
  22. )
  23. }
  24. }
  25. export default MyApp