是的,通常需要对状态数据进行序列化和反序列化。这有很多用途,不仅可以保持会话或页面刷新之间的状态,还可以提供帮助您的应用程序使用数据的查询工具。
如果您的应用程序已连接,那么它很可能可以访问远程端点,这些端点将为您处理数据存储。在这种情况下,服务器端数据库,如 mongodb、rethinkdb 或 sqlserver 是通常的前进方式
如果您谈论的是断开连接、仅限浏览器的应用程序,那么您始终可以将您的状态序列化为 localStorage。我经常这样做,我通常会编写一个简单的外观,允许我“查询”本地数据。如果您需要更强大的本地数据库,那么可以使用 localStorageDB 等软件包来提供帮助。
这里有一些代码显示了这很容易:
db.js
这是位于我使用的名为 store 的 localstorage 包前面的外观
import store from 'store'
const clear = (key) => {
if (key) {
return store.remove(key)
}
store.clear()
}
const get = (key, defaultValue) => {
return store.get(key) || defaultValue
}
const set = (key, value) => {
store.set(key, value)
}
export { clear, get, set }
transactions.js
这是db 的示例用法。在这里,我得到并设置和清除 transactions 的集合
import * as db from './db'
const clear = () => {
db.clear('transactions')
}
const transactions = value => {
if (value) {
db.set('transactions', value)
} else {
return db.get('transactions', [])
}
}
export { clear, transactions }