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

标签 database reactjs crud

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

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

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

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

  3. 完全做其他事情。

动力:我的工作印象是我的数据应该有一个“单一的真实来源”,感觉上面的第一个选项造成了我有两个“来源”的情况"在某些情况下可能会变得不同步。

最佳答案

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

如果数据库中的数据可以从多个来源更改,您需要定期获取它,并且很可能在更改后获取它,并相应地更新您的前端。

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

您可以在此处阅读有关乐观更新的更多信息:https://medium.com/guidesmiths-dev/anatomy-of-a-react-application-optimistic-updates-e4a3318665c7

关于database - 如何使 React 状态与 MySQL 数据库保持同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49470280/

相关文章:

mysql - 找到连续最低的一组数字,而不仅仅是最低的

php - 在 Grocery CRUD + Codeigniter 中设置控件的默认值

python - 在发送查看之前修改 web2py 中的 CRUD 表单

javascript - 如何在ReactJS中将图像从一个组件发送到另一个组件

javascript - Reactjs 测试 api 调用

javascript - 理解transferPropsTo

c# - 是否有用于 MS Excel 操作(读/写)的 Dot NET (C#) 库?

数据库优化 : Hashing all the values

mysql - 从现有数据库创建 EER 模型但已完成关系 - Workbench

sql - 在同一主机上运行的两个不同站点可以共享相同的数据库进行存储和检索吗?