存储用户ID的最佳解决方案是什么?

时间:2019-02-20 15:43:14

标签: javascript reactjs react-redux react-context

在ReactJS中存​​储用户ID以便所有组件都可以访问它的最佳方法是什么?

我已经研究过Redux和Context,但是它们仅仅存储一个ID似乎就大材小用了(或者我丢失了什么?)。我还查看了将ID存储在父组件(App)中,但是页面刷新丢失了ID:(。

2 个答案:

答案 0 :(得分:3)

会话存储可能最适合您的需求

  

sessionStorage属性允许您访问当前来源的会话存储对象。 sessionStorage与localStorage类似;唯一的区别是,存储在localStorage中的数据没有到期时间,而存储在sessionStorage中的数据在页面会话结束时被清除。

https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

然后您可以在需要时设置/获取ID

sessionStorage.setItem('userID', 'value');
const USER_ID = sessionStorage.getItem('userID');

但是,要在页面关闭后仍保留ID,则需要使用localStorage

  

只读的localStorage属性允许您访问文档来源的存储对象;存储的数据跨浏览器会话保存。 localStorage与sessionStorage相似,不同之处在于,尽管localStorage中存储的数据没有到期时间,但是页面会话结束时(即关闭页面时),存储在sessionStorage中的数据将被清除。

https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

localStorage.setItem('userID', 'value');
const USER_ID = localStorage.getItem('userID');

答案 1 :(得分:2)

如果您希望即使在关闭并重新打开浏览器后仍然可以使用数据,则 LocalStorage 是存储数据的合适位置;否则,只要打开浏览器, SessionStorage 就会保留您的数据。