Apollo 中 Query 和 Mutation 的区别?
Posted
技术标签:
【中文标题】Apollo 中 Query 和 Mutation 的区别?【英文标题】:difference between Query and Mutation in Apollo? 【发布时间】:2018-05-27 03:13:37 【问题描述】:我们可以同时使用 Query 和 Mutation 向服务器发出一些请求。在这些查询中,我们可以传递一些参数,并且在这两种情况下我们都会从服务器获得一些结果。唯一的一个强制性区别是我们可以像“this.props.mutation”这样从我们的 props 调用突变,但它看起来像一个语法糖,因为我们可以将我们的 HOC 包装在“withApollo”中,我们将收到“query”道具中的方法也是如此。那么这两种请求的主要区别是什么?
【问题讨论】:
【参考方案1】:严格来说没有区别。
...从技术上讲,可以实现任何查询来导致数据写入。 但是,建立一个约定,任何操作都是有用的 导致写入应该通过突变显式发送。
但是,参考实现确实强制执行以下操作。
虽然查询字段是并行执行的,但突变字段在 系列,一个接一个。
这意味着如果我们同时发送两个 incrementCredits 突变 请求,第一个保证在第二个开始之前完成, 确保我们不会与自己陷入竞争状态。
这两个报价都可以从下面的链接中找到。
http://graphql.org/learn/queries/#mutations
http://graphql.org/learn/queries/#multiple-fields-in-mutations
【讨论】:
以上是关于Apollo 中 Query 和 Mutation 的区别?的主要内容,如果未能解决你的问题,请参考以下文章
Angular Apollo GraphQL watchQuery 与订阅
React-Apollo-Hooks 使用Mutation 传递空变量?