我可以在不使用 Apollo 的情况下在 react 中使用 graphql 吗?

FED*_*Dev 2 reactjs graphql apollo-client

我正在尝试使用带有反应的 GraphQl。建议使用 apollo 客户端进行反应以将 graphql 实现到应用程序。但我不想首先使用它。

我可以在不使用 apollo 客户端的情况下使用 graphql 做出反应吗?

Kir*_*ati 10

是的。我们可以在不使用 Apollo Client 的情况下将 GraphQL 与 React 结合使用。我们可以使用fetchaxios并且可以使事情相同。

下面的示例演示了fetch 用于查询 GraphQL 端点用法。

fetch(<graphql_endpoint>, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ query: '{ posts { title } }' }),
})
.then(res => res.json())
.then(res => console.log(res.data));
Run Code Online (Sandbox Code Playgroud)

同样的事情可以使用axios轻松实现。希望这可以帮助!

  • `fetch` 内置于 JavaScript 中。您可以直接使用它。 (2认同)

Mil*_*lam 5

是的,因为GraphQL 是一种规范,而不仅仅是一家公司的实现(无论很多人认为该实现有多好)。从本质上讲,GraphQL 只是一种查询格式和结构化响应。甚至网络呼叫也不是严格需要的。

您也可以在浏览器中跳过 Apollo,而只需调用一个普通的 Web 请求。您可以轻松地使用 XMLHttpRequest 或 Fetch API 进行 AJAX 调用来执行 GraphQL 查询。我能想到的最简单的方法是在某处安装GraphiQLPlayground,打开浏览器的开发人员工具,然后执行查询。大多数浏览器开发工具的网络选项卡将显示您需要的所有请求标头和 URL 参数。

Apollo 客户端只是为您完成了很多工作,并且拥有一个非常健康的生态系统来添加缓存、联合等,但是没有什么可以阻止您跳过该库并在没有中间人的情况下自己进行 HTTP 调用。

  • GraphQL 与传输无关。它并不特定于 HTTP。GraphQL 服务可以在根本不需要网络调用的情况下执行文档。 (2认同)