我可以在我的 React 应用程序中使用 window.localStorage 吗?

Can I use window.localStorage in my React application?

我有一个 React 应用程序,允许用户从 master/detail 视图中 select 他们的 "Favorite" 项目...

我希望用户能够打开网站,select他们的"Favorites"无需登录,重新加载页面,并且保存他们的收藏夹 "on the website." 我试过使用来自其他来源的 PHP cookie(阅读此处:)。我不想包含另一个 npm 包(主要是因为我只想知道我的依赖项背后到底发生了什么),我能想到的唯一解决方案是使用

window.localStorage.setItem('key', 'value');

我说得对吗?这还有其他约定吗? 我应该做什么?

请记住:我 运行 这个是在 Node.js 服务器上 所以我不能只用 PHP请求。

是什么让您认为您无法通过获取请求设置 cookie?查看您的其他问题,您似乎只是忘记包含凭据:

fetch('/whatever', {
    method: "GET",
    credentials: 'include'
})

但是,是的,您可以使用 window.localStoragewindow.sessionStorage 在本地保存内容。

答案中如是说

React 是 build ui 组件的库。使用本地存储不是 objective 的一部分,因此您可以使用它,因为它是网络规范的一部分(以及 sessionStorage。无论如何,您可能希望将 localStorage 在一个单独的文件中,可以导入和测试 - 这意味着间接级别

您可以使用 store.js 公开一个简单的 API 用于跨浏览器本地存储

// Store current user
store.set('user', { name:'Marcus' })

// Get current user
store.get('user')

// Remove current user
store.remove('user')

// Clear all keys
store.clearAll()

// Loop over all stored values
store.each(function(value, key) {
    console.log(key, '==', value)
})
  • 安装:

npm install store --save

使用 npm

的示例 store.js
var store = require('store')
store.set('user', { name:'Marcus' })
store.get('user').name == 'Marcus'