next 自定义_app 和 _document

目的:因为nextjs里面是直接没有index.js,有时候我们需要整个项目遵循一个layout或者是一个link(比如tailwind),那么这个时候,_app和_document的真正的意义才会开始存在

为什么自定义_app ?
自定义_app d饿目的就是有的时候我们需要load一个component,但是需要这个component符合某一个特定的样式,但是我们又不想重复的写css,那么这个时候_app的意义就有了
'''
import App from "next/app";

import "antd/dist/antd.css";

class MyApp extends App {
// 全剧数据获取
static async getInitialProps({ Component, ctx }) {
// 获取组件的get initial props
// 因为get initial props通常都是异步的,所以这里如果我们使用async
// 一定要加上await
// 每当页面切换的时候,这个方法都会被执行Z
let pageProps;
console.log("the global func is working ...");
if (Component.getInitialProps) {
pageProps = await Component.getInitialProps(ctx);
}
return { pageProps };
}

render() {
const { Component, pageProps } = this.props;
return ;
}
}

export default MyApp;

'''

为什么我们需要写_document ?
首先,我们没有index.html,有时候我们需要在添加外部的link,比如tailwind和animate.css,那么这个时候我们就要自定义document
'''
import Document, { Html, Head, Main, NextScript } from "next/document";

class MyDocument extends Document {
static async getInitialProps(ctx) {
const componentProps = await Document.getInitialProps(ctx);
return {
...componentProps
};
}

render() {
return (








);
}
}

export default MyDocument;

'''

你可能感兴趣的:(next 自定义_app 和 _document)