簡體   English   中英

GraphQL + Apollo請求

[英]GraphQL + Apollo requests

如果我有一個使用GraphQL + Apollo + React構建的應用程序,只是想知道頁面上是否有3個組件,每個組件進行不同的查詢,是否意味着將從客戶端到服務器發出3個請求,而3個會退貨嗎? 當我收集GraphQL將API調用壓縮為1個請求時,它有點工作方式,但是在上述場景中,從客戶端到服務器,然后從服務器到客戶端的請求,它如何工作?

文檔

查詢重復數據刪除可以幫助減少通過網絡發送的查詢數量。 默認情況下,它是打開的,但是可以通過向每個請求的上下文傳遞queryDeduplication:false或使用Apollo Client設置上的defaultOptions鍵來關閉它。 如果打開,則查詢重復數據將在查詢到達網絡層之前發生。 如果許多組件顯示相同的數據,但您不想多次從服務器獲取該數據,則查詢重復數據刪除將很有用。 通過將查詢與當前進行中的所有查詢進行比較來工作。 如果當前正在執行相同的查詢,則新查詢將映射到相同的Promise,並在當前進行中的查詢返回時解決。

換句話說,只要您沒有將queryDeduplication顯式設置為false ,如果Apollo匹配任何進行中的請求,它將跳過發送請求。

雖然GraphQL提供了相同的請求內發送多個查詢的能力(和阿波羅支持此功能),它是由你來撰寫這樣的查詢- GraphQL 不會自動為您做到這一點。 為了使用Apollo將多個查詢批處理為單個請求,您必須使用apollo-link-batch-http

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM