如何解决每当用户与前端交互时,我应该何时更新云数据库?
我想找到一种更新前端(React
和ApolloClient
)和后端服务器(ApolloServer
)的最佳方法,以便在用户与前端并更新某些内容。我想到了两种方式:
-
仅通过在生命周期方法
fetch
中调用componentWillUnmount
来更新组件的状态以在前端进行即时更新并更新云数据库。但是,当我使用ApolloClient
时,可以使用useMutation
钩子来更新后端。但是如何在componentWillUnmount
中使用它。 -
这是常规的,我们同时更新前端和后端。但是我认为这可能会影响用户交互,因为后端操作可能需要很长时间才能响应。
您怎么看?有什么建议吗?
解决方法
正如@szchocik在评论中已经指出的那样,依靠componentWillUnmount
并不是一个好主意,因为不一定要调用该方法。每当用户希望保存数据时(例如,在填写表单并单击“保存”按钮时,或者在输入被更新然后失去焦点时),都应该向后端提出请求。
如果希望在执行突变时为用户提供更即时的体验,则可以使用乐观更新as described in the docs。为您的optimisticResponse
钩子提供一个useMutation
参数,将使您无需等待服务器的响应即可立即更新客户端缓存(并因此更新您的UI)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。