在构建redux/react应用程序时,您是否仍然需要使用数据库来存储数据,还是可以将所有内容都放入redux存储中?
如果需要一个数据库,在哪里进行数据库调用是最好的?
是的,通常存在对状态数据进行序列化和反序列化的情况。这有很多用途,不仅可以在会话或页面刷新之间保持状态,还可以提供查询工具,帮助应用程序使用数据。
如果您的应用程序是连接的,那么它可以很好地访问远程端点,这些端点将为您处理数据存储。在这种情况下,服务器端数据库(如mongodb、rethinkdb或sqlserver)是通常的前进方式
如果你谈论的是一个断开连接的,只有浏览器的应用程序,那么你总是可以序列化你的状态到localStorage
。我经常这样做,我通常编写一个简单的facade,允许我"查询"本地数据。如果你需要一个更强大的本地数据库,那么有像localStorageDB这样的包可以帮助你。
下面的一些代码显示了这是多么容易:
db.js
这是位于我使用的本地存储包store
前面的facadeimport 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 }