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

IT技术 database reactjs crud
2021-04-28 19:24:46

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

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

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

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

  3. 完全做别的事情。

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

1个回答

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

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

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

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