我需要使用我的 React 应用程序为每个客户端保留唯一的标识符。这样做将重新生成一个随机字符串(我想要的),但在每次刷新时都会这样做,这不是我想要的 const [id] = useState(Math.random().toString(36).substr(2, 8));我已经找到了 lodash 的 uniqueId() 形式,但恐怕 id 在多个客户端中不会是唯一的,因为它只提供唯一的 Id 并在每次调用时递增它(1、2、3...) const [id] = useState(_uniqueId());是否有某种 _uniqueId 可以生成随机字符串并通过页面刷新持续存在?
2 回答
达令说
TA贡献1821条经验 获得超6个赞
我不认为有一个内置或开箱即用的解决方案可以在反应中生成自动持久的唯一ID。你有两个问题需要解决。
如何生成唯一ID。这已经通过使用uuid解决了。
以及如何坚持。
您可以根据需要使用充足的存储空间。假设您希望将数据存储在客户端,那么您可以在其中保留数据。
本地存储
会话存储
曲奇饼
索引数据库API
文件系统
同样,这取决于您的用例。因此,请仔细检查哪一个适合您的要求。
凤凰求蛊
TA贡献1825条经验 获得超4个赞
另一种生成临时 ID(对于同一客户端而言相同)而不存储它的方法是使用浏览器指纹识别。
例如,您可以获取用户代理、客户端时区和屏幕分辨率,对它们应用一些哈希函数并将其称为 ID。
有更先进的指纹识别方法可以减少两个不同用户拥有相同 ID 的可能性,但永远不会是 0% 的可能性。
添加回答
举报
0/150
提交
取消