我在框架 Next.js 中有 React 应用程序(但框架并不重要),并实现了身份验证。
当前应用程序在首次加载后通过 API 调用获取用户会话数据(我正在next-auth
为此使用)。这导致加载和会话获取之间存在间隔,这导致用户在整个应用程序中看到加载微调器的间隔很小。
我想通过实施 SSR(服务器端渲染)来缓解这种情况,我可以在其中使用会话数据来补充初始响应。
这可以通过getServerProps
Component 中的方法在 Next.js 中轻松完成,但问题是我需要在我拥有的每个页面上实现此方法。
这就是为什么我正在寻找一种方法使会话状态在整个应用程序中全局化,以便每个页面(组件)都可以访问此会话数据。
我的主要问题是,如果我应该使用 HOC 包装器来实现getServerProps
接收会话数据,或者我应该使用 Redux 存储并通过相同的方法水合这个存储。
我不确定 HOC 是否仍被广泛使用,或者它们现在已被弃用。
我不想getInitialProps
在 Next.js 自定义_app.js
文件中实现,因为这将禁用静态生成页面的能力,并且会话将在每个页面中可用。我计划该应用程序仅在大约一半的页面中需要此会话数据。
那么我应该使用 HOC 还是为此添加 redux 存储?