23

我来自SPAREST/GraphQl API 的世界。现在我正在使用Next.js库为SSR(Server Side Rendered) React App构建个人项目。

由于我在所有单页应用程序中都使用了Redux,我现在想知道当每个路由用户访问、加载新链接并刷新页面时,我应该如何管理用户状态。

我找到了一些关于会话和 cookie 的信息,但我都不熟悉这些信息。我查看了一些关于使用ReduxNext.js的在线文章,但看起来很复杂。

4

2 回答 2

11

让我们简化 Next 的工作方式,浏览器向服务器发送请求,Next 在服务器端呈现,返回一个 html,然后,Next 重新水合页面,从现在开始它的行为就像 SPA。

Next 有一个示例文件夹,基本上适用于每种技术,包括redux.

查看redux 示例

于 2019-10-26T17:28:03.497 回答
2

如果您习惯于以基于路由的方式进行操作,这可能有助于理解:

  1. 整个应用程序(_app.js)被包裹在Providerfor redux 中,因此pages应用程序中的所有组件都可以访问store.
  2. 根据文档:
    otherwise different user data can be mixed up. On the client side the
    same store is used, even between page changes.```
    
  3. 因此,您的应用程序将在每个请求上重新创建商店,但将request、theurl甚至可能的results(请求的)传递到 的初始状态store,因此每个页面和组件都可以使用store渲染前的内容。
  4. 还 checkoutgetInitialProps它将在页面上的组件呈现之前执行一些副作用,并为页面的道具提供数据。

一些资源:

于 2019-10-28T16:06:06.290 回答