【发布时间】:2021-03-13 22:50:31
【问题描述】:
我需要为使用我的 react 应用的每个客户端保留一个唯一标识符。
这样做会重新生成一个随机字符串(我想要的),但每次刷新时都会这样做,这不是我想要的
const [id] = useState(Math.random().toString(36).substr(2, 8));
我在 lodash 中找到了 uniqueId() ,但我担心 id 在多个客户端中不会是唯一的,因为它只提供一个唯一的 Id 并在每次调用时递增它(1、2、3...)
const [id] = useState(_uniqueId());
是否有某种 _uniqueId 生成随机字符串并通过页面刷新持续存在?
【问题讨论】:
-
如果您需要它通过页面刷新持续存在,那么您需要将它存储在某个地方。将其存储在数据库中是保证它会持续存在的最佳方式。但是,如果您不能使用后端服务,您可能会考虑使用本地存储或 cookie。另外,请参阅stackoverflow.com/questions/105034/how-to-create-a-guid-uuid,了解如何生成可能唯一的 ID。
-
@RichMcCluskey 我只需要它作为在帐户创建过程中识别客户的临时方法,一旦我想出一种方法来创建一个不会改变的唯一 ID,我计划将它与 Context 一起存储刷新时。
-
感谢您的链接,我已经用 Math.random() 寻找错误的方向
-
以备不时之需。 npmjs.com/package/uuid
-
如果你想要一个唯一的 ID 保证在客户端之间是唯一的,你应该在服务器端生成和存储这个 ID,而不是客户端。
标签: javascript reactjs lodash