如何使React状态与MySQL数据库保持同步

时间:2018-03-24 21:47:04

标签: database reactjs crud

场景:我正在构建一个简单的日历网络应用程序,它在前端使用React,在服务器的后端使用MySQL。该应用程序在首次安装时从服务器检索所有事件的列表,将其显示给用户并允许CRUD操作。一切都按预期工作。

问题:在创建,更新或删除操作中,我应该:

  1. “独立”更新数据库和状态。

  2. 更新数据库,再次调用服务器以检索新的事件列表,然后将状态设置为等于此新列表。

  3. 完全做其他事情。

  4. 推动:我的工作印象是我的数据应该有一个“单一的事实来源”,感觉就像上面的第一个选项造成了我有两个“来源”的情况“在某些情况下可能会失去同步。

1 个答案:

答案 0 :(得分:0)

1.和2.都是正确的,这取决于你想要实现的目标。您可以尝试使用乐观更新,这意味着在提交这些操作时,您可以将状态更改为成功(大多数情况应该是这种情况)并在操作失败时进行更正数据库/后端由于某种原因。这创造了一个不错的前端体验。在这些情况下,您还可以在操作后获取新数据。

如果数据库上的数据可能会从多个来源发生变化,您需要定期更改数据并在更改后更新,并相应地更新您的前端。

案例1.如果您是唯一一个操纵数据的人(至少您需要在该州拥有数据),则应该有效。在这种情况下,后端/数据库仍应响应已执行操作的状态,以帮助您管理状态。您还可以在操作挂起时显示某种加载指示符,而不是乐观地更新状态。

您可以在此处详细了解乐观更新:https://www.guidesmiths.com/en/news-and-blog/anatomy-of-a-react-application-optimistic-updates-22