Apollo中查询和变异之间的区别?

Zhe*_*ina 3 apollo apollo-server apollostack react-apollo apollo-client

我们可以使用 Query 和 Mutation 向服务器发出一些请求。在这些查询中,我们可以传递一些参数,并且在这两种情况下我们都会从服务器获得一些结果。唯一的必要区别是我们可以像“this.props.mutation”一样从我们的道具中调用变异,但它看起来像是一种语法糖,因为我们可以将我们的 HOC 包装在“withApollo”中,我们将收到“query”道具中的方法也是如此。那么这两种类型的请求之间的主要区别是什么?

imr*_*las 6

严格来说没有区别。

...从技术上讲,可以实现任何查询来导致数据写入。但是,建立一个约定,即任何导致写入的操作都应该通过突变显式发送是很有用的。

但是,参考实现确实强制执行以下操作。

当查询字段并行执行时,变异字段一个接一个地串行运行。

这意味着如果我们在一个请求中发送两个 incrementCredits 突变,第一个保证在第二个开始之前完成,确保我们不会以自己的竞争条件结束。

可以从下面的链接中找到这两个报价。

http://graphql.org/learn/queries/#mutations

http://graphql.org/learn/queries/#multiple-fields-in-mutations