Next.js 使用 _app.js 和 _document.js

Next.js use of _app.js and _document.js

我目前使用 _document.js 将 css 注入我的 Next.js 应用程序,我想开始使用 _app.js 来帮助将数据注入页面。

想知道是否可以同时使用 _document 和 _app,还是我们应该只使用其中之一?

简短回答:是的,您可以同时使用两者。它们有不同的用途,可以在同一个应用程序中使用。

根据NextJS docs

Next.js uses the App component to initialize pages.

To override, create the ./pages/_app.js file and override the App class

Pages in Next.js skip the definition of the surrounding document's markup. For example, you never include <html>, <body>, etc. To override that default behavior, you must create a file at ./pages/_document.js, where you can extend the Document class.

注意_document.js只在服务器端渲染,不在客户端渲染。所以像 onClick 这样的事件处理程序是行不通的。