我试图在next.js 13中设置next-auth
。为了能够在app目录中使用useSession
,我必须使用use client
将页面转换为客户端页面。
然后,我需要将_app.js
与SessionProvider
和布局文件 Package 在app
目录中
export default function App({
Component,
pageProps: { session, ...pageProps },
}) {
return (
<SessionProvider session={session}>
<Component {...pageProps} />
</SessionProvider>
)
}
和app
组件中的RootLayout
export default function RootLayout({ children }) {
return (
<html>
<head />
<body>
<SessionProvider>{children}</SessionProvider>
</body>
</html>
);
}
现在我重复自己两次,如果我想使用next-auth
,我必须将服务器页面转换为客户端。在这个项目中使用app
目录还有什么好处吗?将来,我可能会有类似的设置用于不同的目的。
1条答案
按热度按时间gwo2fgha1#
一开始,我认为app目录会使next.js应用程序的设计变得更加复杂,客户端渲染和服务器渲染性能之间的差异不会那么大。
然后我意识到这与
scalability
有关。我们可以无限地扩展服务器,但浏览器资源有限。我们总是可以为服务器增加更多的计算能力,但我们不能为客户端这样做。由于服务器组件包留在服务器上,如果我们想更快地执行代码,我们只需为服务器增加更多的计算能力