为什么我应该在 urql 上使用 Apollo/Relay?

A. *_*val 22 graphql graphql-js

我正在开发使用 GraphQL 的应用程序。我正在使用urqlGraphQL 客户端并且到目前为止真的很喜欢它。什么是使用的优点阿波罗/继电器urlql

Phi*_*hun 47

urql 的核心贡献者在这里可能回复晚了,但总比没有好

使用这三种中的一种比其他的有明显的优点和缺点。

Relay 对你的模式的要求很严格,但这意味着它对于最常见的用例具有非常易于使用的模式。它将帮助您使用很少的额外代码设置分页,但总体而言,它确实需要您向应用程序添加更多样板,否则这些样板可能非常小。

Apollo 是最流行的解决方案,也是一个很好的“全能者”。它有一些默认值,有时看起来很古怪,但旨在解决 99% 的用例——可以这么说。它带有内置的通用规范化缓存,可以应用于任何 API,并允许您使用您的突变指定其正常缓存逻辑(缓存更新)的异常。

urql 是最新的库,旨在易于使用、小巧且可定制。它不像 Apollo 或 Relay 那样带有开箱即用的标准化缓存,但可以单独添加。虽然 API 很简单,但它确实允许深度定制,这是一把双刃剑:您可能可以为您的特定 API 解决意外问题和代码解决方案,但它可能需要您稍后了解 urql 的“交换”。

How to GraphQL 站点上还有一个关于“urql vs Relay vs Apollo”的较长部分:https ://www.howtographql.com/react-urql/0-introduction/

希望这会有所帮助,并且不要太偏颇!

  • Urql 绝对是 Apollo 的绝佳替代品。谢谢你让这一切成为可能。这确实是需要的。 (6认同)