【问题标题】:Is state user specifc?状态用户是特定的吗?
【发布时间】:2019-08-12 19:26:37
【问题描述】:

我是 Node 和 React 的新手。现在我正在玩 react 和 redux。太棒了!但至少有一个问题。 redux store 是用户特定的还是让每个用户具有相同的值的相同对象?

编辑:

在我的场景中,不同的用户同时使用该应用程序。他们总是有相同的状态。是不同用户之间的状态同步。

或者在 redux 中让每个用户都有一个特定的状态。

谢谢!

【问题讨论】:

  • 你的问题很不清楚。如果没有您的代码或对它的详细解释,我们无法理解您所说的 users 是什么意思以及您如何管理您的 redux 存储。

标签: node.js reactjs redux react-redux


【解决方案1】:

React 在客户端作为 JavaScript 运行,因此默认情况下,您的应用程序运行的每个选项卡都有自己的状态,不能保证相同。

要在同一浏览器的选项卡之间同步您的状态,可以使用 cookie。要在不同用户之间同步您的状态,他们必须相互通信,因此必须在客户端完成一些实现,例如使用会话或 websocket。

但请记住,sync 切换并不容易!状态同步需要大量实现,即使可能有一些库可以帮助实现这一点,在 React 应用的多个实例之间同步状态也可能需要大量技能和代码。

如果不进行推测,您给出的解释很少,很难进一步回答,但您明白了要点。

【讨论】:

  • 谢谢!这是一个很好的信息!我会深入研究!
  • 你也可以利用浏览器的localStorage来存储一些用户信息,比如jwt令牌,这样他们就不需要在每次初始化应用程序时都登录了,但是应该明智地使用(我只将它用于令牌)
  • 太棒了!此外,新用户可能会觉得奇怪,但在 Stack Overflow,thank-you comments should be avoided - 如果您对答案感到满意,请点赞或接受;)
  • @ThatCoderGuy 小心! localStorage 超级酷。但是请avoid using it for security-related data
【解决方案2】:

因为 React 是从客户端(浏览器)提供的,所以 React 应用程序的状态属于应用程序本身的实例。

因此,如果您打开了 2 个选项卡,则每个选项卡都有自己的应用程序实例,因此有自己的状态。

无论您是在应用内以相同用户身份还是不同用户身份登录,应用程序都有其状态(不像会话,您通常会在后端找到它)

同样适用于redux,状态属于应用的实例。

我希望这能提供一些清晰

【讨论】:

  • 非常感谢。我知道,这不是专家的问题。我对服务器端发生的事情和客户端发生的事情之间的差异有点挣扎。但是你的回答给了我一些许可!
  • 不客气,这是一个相当大的范式转变,但问这些问题很好
  • 我刚刚在后端有经验。所以这是新的 :)
猜你喜欢
  • 1970-01-01
  • 2018-07-17
  • 1970-01-01
  • 2021-12-20
  • 1970-01-01
  • 2021-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多