每当用户与前端交互时,我应该什么时候更新云数据库?

When should I update the cloud database, whenever user interacts with frontend?

我想知道更新前端(ReactApolloClient)以及后端服务器(ApolloServer)以在用户交互时保持数据同步的最佳方式是什么与前端和更新的东西。我想到了两个办法:

  1. 仅更新​​组件状态在前端获取即时更新并在生命周期方法中调用fetch更新云数据库componentWillUnmount。但是,由于我正在使用 ApolloClient,我可以使用 useMutation 挂钩来更新后端。但是我如何在 componentWillUnmount.

    中使用它
  2. 这个是常规的,我们同时更新前端和后端。但我认为这可能会影响用户交互,因为后端操作可能需要很长时间才能响应。

你怎么看?有什么建议吗?

正如@szchocik 已经在评论中指出的那样,依赖 componentWillUnmount 不是一个好主意,因为不一定会调用该方法。您应该在用户希望保存数据时向后端发出请求(例如,当完成表单并点击“保存”按钮时,或者当输入更新然后失去焦点时)。

如果您希望在执行变更时为您的用户提供更即时的体验,您可以使用乐观更新 as described in the docs。为您的 useMutation 挂钩提供 optimisticResponse 参数将允许您立即更新客户端缓存(因此您的 UI),而无需等待服务器的响应。