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

Database 如何保持React状态与MySQL数据库同步,database,reactjs,crud,Database,Reactjs,Crud,场景:我正在构建一个简单的日历web应用程序,前端使用React,后端使用MySQL。应用程序在首次装载时从服务器检索所有事件的列表,向用户显示这些事件,并允许CRUD操作。一切正常 问题:在创建、更新或删除操作中,我应该: “独立”更新数据库和状态 更新数据库,再次调用服务器以检索新的事件列表,然后将状态设置为该新列表 完全做别的事情 推动力:我的工作给人的印象是,我的数据应该有一个“单一的真实来源”,而且我觉得上面的第一个选项造成了一种情况,即我有两个“来源”,在某些情况下可能会变得不同步。

场景:我正在构建一个简单的日历web应用程序,前端使用React,后端使用MySQL。应用程序在首次装载时从服务器检索所有事件的列表,向用户显示这些事件,并允许CRUD操作。一切正常

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

  • “独立”更新数据库和状态

  • 更新数据库,再次调用服务器以检索新的事件列表,然后将状态设置为该新列表

  • 完全做别的事情


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

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

    如果数据库中的数据可以从多个来源更改,那么您需要定期获取数据,最有可能是在更改之后,并相应地更新前端

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


    您可以在此处阅读有关乐观更新的更多信息:

    到目前为止您做了什么?当然,我们很高兴能帮你做一件事。感谢您提供有关多个来源进行更改的链接和说明。我在这里的原型没有想到这一点,但这对我以后肯定很重要:)