我有一个React应用程序,允许用户选择他们的"收藏夹"来自主/详细视图的项目......
我希望用户能够打开网站,选择他们的"收藏夹" 没有必须登录,重新加载页面,并在网站上保存他们的收藏夹。"我尝试过使用其他来源的PHP Cookie(请在此处阅读:You can't set Cookies from a fetch request)。我不想包含另一个npm
软件包(主要是因为我只想知道我的依赖项背后真正发生了什么),而我能想出的唯一解决方案是使用< / p>
window.localStorage.setItem('key', 'value');
我是对的吗?这有其他约定吗? 应该我做什么?
请注意:我在Node.js服务器上运行,因此我无法通过PHP请求设置Cookie。
答案 0 :(得分:1)
是什么让您认为无法通过获取请求设置Cookie?看看你的另一个问题,看起来你只是忘了包含凭证:
fetch('/whatever', {
method: "GET",
credentials: 'include'
})
但是,是的,您可以使用window.localStorage
或window.sessionStorage
在本地保存内容。
答案 1 :(得分:1)
正如答案所述
React
是一个用于构建ui组件的库。使用本地存储不是该目标的一部分,因此您可以使用它,这是Web中规范的一部分(以及sessionStorage
。无论如何,您可能想要分离localStorage
的访问权限在一个单独的文件中,可以导入和测试 - 这意味着一个间接级别
答案 2 :(得分:1)
您可以使用 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'