React:持久存储选项?

Jay*_*yem 5 reactjs redux

我最近一直在阅读有关 React 和 Redux 的内容。它看起来很有趣,我想将它用于小型个人项目。我不断回想起的一个问题是,数据何时保存到数据库(或某种持久存储)?

大多数教程都会解释组件、道具、状态,但我没有找到很多关于将所述状态保存到持久存储的可靠信息。有些文章提到本地存储,但是清除本地存储后会发生什么?用户的所有数据都消失了。。。?

最终,有时必须使用数据库,对吧?

我一直在研究Axios来帮助处理 API 后端。这是一个好的选择吗?是否有某种方法可以保存到本地存储,以便用户立即看到 UI 更新并在事后默默地调用 API 端点?

接受想法和建议。谢谢你!

Zek*_*oid 2

这确实是一个广泛的话题,但你说得对,互联网缺乏数据持久性的例子。原因之一是 React 和 Redux 都不是有助于解决这些问题的框架;这意味着它是库的一个很好的应用,但不是它们所呈现的抽象思想的核心。

这并不是说它是不可撤销的,恰恰相反。在 redux 中间件的帮助下,这成为一项有趣的任务,可以与应用程序的其余部分完美配合。实现数据持久性的方法有很多种,因此我在这里仅解释一种方法,我在自己的应用程序中使用了这种方法。

CouchDB + PouchDB + 中间件

  • CouchDB:JSON 格式的简单文档存储
  • PouchDB:将您的 localStorage 与 CouchDB 实例同步以自动允许离线使用

由于数据库引入了有状态行为,redux 建议使用中间件,以免状态保留在其自身之外而弄乱您的存储。在此中间件中,您可以将数据库实例同步到存储。该中间件只是读取数据库中的数据并触发操作将其插入到存储中。然后,您的应用程序会触发中间件拾取并用于将数据存储在其数据库中的操作。最后,数据库用它插入/更新/删除的新数据更新存储。

这是一种简单而强大的方法,可以将 JSON 可序列化数据保存到数据库,同时维护 redux 存储。