我正在使用GraphQL的应用程序。到目前为止,我正在使用urql
GraphQL客户端。与<urlql
相比,使用 Apollo / Relay 有什么优势?
答案 0 :(得分:4)
urql的核心贡献者?可能是回复较晚,但总比没有好
使用三种方法中的一种相对于其他方法有明显的优缺点。
在对架构的要求方面,中继非常严格,但这意味着对于大多数常见用例,中继具有非常易于使用的模式。它可以帮助您以很少的额外代码来设置分页,但是总的来说,它确实需要您向应用程序添加更多样板文件,否则它们可能会很小。
阿波罗(Apollo)是最受欢迎的解决方案,也是一个很好的“全面解决方案”。它有一些默认值,有时看起来有些古怪,但是可以解决99%的用例。它具有内置的通用归一化缓存,可以应用于任何API,并允许您根据自己的突变指定其常规缓存逻辑(缓存更新)的例外情况。
urql是最新的库,其目标是易于使用,小巧且可定制。它不像Apollo或Relay那样具有开箱即用的规范化缓存,但是可以单独添加。尽管API很简单,但是它允许进行深度定制,这是一把双刃剑:您可以针对特定的API解决意外的问题和代码解决方案,但是稍后可能需要了解urql的“交换”。
如何GraphQL网站上还有“ urql vs Relay vs Apollo”的较长部分:https://www.howtographql.com/react-urql/0-introduction/
希望这会有所帮助,并且不要太偏见!