useEffect
所有页面的主(全局)文件是什么?在Next.js之前,你可以在_app.tsx
中使用useEffect
,它会影响所有页面。示例如下:
const MyApp = ({ Component, pageProps }: AppProps) => {
useEffect(() => {
console.log("Hello!")
)}
return (
<>
<Head>
<title>Title</title>
</Head>
</>
);
};
字符串
在所有页面上,您可以看到console.log
。现在在app
目录下使用Next.js,在哪个文件中可以使用全局useEffect
?因为您不能在服务器文件中使用useEffect,例如在layout.tsx
中。
1条答案
按热度按时间jyztefdp1#
正如您在Upgrade Guide上看到的,
pages/_app.js
和pages/_document.js
已被单个app/layout.js
根布局所取代。因此,您可以将
useEffect
放在app/layout.js
中,并使其成为顶部带有"use client"
的客户端组件(知道这不会阻止应用程序的其他部分成为服务器组件):字符串
但是,如果你不想让你的根布局成为一个客户端组件,你可以这样做,例如,使用一个单独的组件:
的数据