我有一个流星反应应用程序,我需要一种方法来保存本地的一些信息,这也将是持久的。例如,如果用户保存json,即使应用程序已关闭并稍后重新打开,我也希望使用相同的json。我尝试过groundDb,但它也需要服务器端。我需要此功能才能让每个用户保存游戏级别等信息。如果我可以在网络上使用它而不仅仅是本机版本,那将是很棒的。谢谢!
答案 0 :(得分:1)
我们使用的一个选项是npm
包localforage
,它为localStorage
提供异步存储包装,并允许您保存任何类型的数据。您可以配置商店,并创建多个本地存储实例。
您可以在localForage中存储任何类型;你并不局限于像localStorage这样的字符串。
设置localforage
类似于使用localStorage
,除非您必须使用异步调用:
使用Promise (注意,如果您不使用ES6 API,则可以使用回调)
存储您的数据
localforage
.setItem(
'state', data
)
.catch(console.error.bind(console))
检索您的数据
localforage.getItem('state')
.then(data => /* ... */ )
.catch(console.error.bind(console))
为您的商店命名
localforage.config({
name: 'myStore'
})
答案 1 :(得分:1)
要加入学生,请在这里找到正确的解释:
您应首先使用全局JSON对象及其stringify方法将对象文字转换为JSON:
let data = {a: 'some', b: 'data', c: null};
let json = JSON.stringify(data);
localStorage.setItem('data', json);
当您想要检索数据并在应用程序中使用它时,您需要将JSON解析回对象文字:
let json = localStorage.getItem('data');
let data = JSON.parse(json);
答案 2 :(得分:0)
应该很容易。对Object进行字符串化以使其成为字符串然后保存它。请遵循:
given:
params.id = 3002
currentUser = Mock(User)
criteriaSetup()
controller.getSalesOrder >> salesOrders[2]
when:
controller.loadOrderManageDetails()
then:
(1.._) controller.springSecurityService.getCurrentUser() >> currentUser
expect:
view == 'orderMange/orderManageDetail'
model.orderInstance == salesOrders[2]
答案 3 :(得分:0)
保存到localStorage时序列化JSON:
var serializedData = JSON.stringify(data);
localStorage.setItem('dataKey', serializedData);
从localStorage检索时反序列化:
var serializedData = localStorage.getItem('dataKey');
var data = JSON.parse(serializedData);
答案 4 :(得分:0)
是的,这很容易。获取所需的对象并对其进行字符串化,然后存储在本地存储中。 JSON对象是字符串对象,而不是每个字符串。因此,当您将其存储到本地存储时,它不能存储为对象,而是需要将其转换为json字符串。
添加:localStorage.setItem(); 检索:localStorage.getItem();
另一个好的做法是,在登录时检索数据,将其存储在数组中,然后存储回localstorage。所以你不会有任何垃圾数据,它总是最新的。
清除:localStorage.clear();注意:这将清除整个localstorage。 另请注意,localstorage有一个大小限制。大多数浏览器允许5-10 MB。
如果你有大量数据,你也可以indexedDB。它相当新,但更好地存储在浏览器中的大量数据。现在我认为只有IE有一个很好的实现。
答案 5 :(得分:0)
使用标准localStorage
:https://developer.mozilla.org/en/docs/Web/API/Window/localStorage
localStorage.setItem('xyz', JSON.stringify(object));
const object = JSON.parse(localStorage.getItem('xyz'));