Setup Apollo Client para requisições graphQL em React

setup apollo client para requisições graphql em react

介绍

本文将展示如何为 graphql 请求配置 react 应用程序,为此将使用 apollclient 库。这个想法是展示如何配置应用程序以及如何发出请求的示例。

@apollo/client:允许您管理状态并使用 graphql 发出请求的库graphql:允许解析 graphql 查询的库

将库添加到项目中:

yarn add @apollo/client graphql –dev

设置

接下来我将展示如何配置 apolloclient 以启用 graphql 请求。
首先,将创建一个 apolloclient 上下文,以便其子级包含的所有内容都可以发出 graphql 请求:

import {  apolloclient,  apolloprovider,  httplink,  inmemorycache} from '@apollo/client'function exampleapolloprovider({ children, token, uri }) {  const httplink = new httplink({    uri: uri,    headers: {      authorization: `bearer ${token}`,    },  })  const client = new apolloclient({    cache: new inmemorycache(),    link: httplink,  })  return {children}}export { exampleapolloprovider as apolloprovider }

登录后复制

在 const 客户端中,apolloclient 被初始化,传递有关它将从定义的链接命中的位置的信息,以及来自 inmemorycache 实例的缓存,apolloclient 使用该实例来缓存查询结果。
在 httplink 中,传递 graphql api 的 uri,并定义请求所需的标头,在本例中以使用 bearer 令牌为例。
最后,定义返回和导出以允许在应用程序内使用。

考虑到这是一个登录后将令牌保存在 localstorage 中的应用程序,并且您通常希望允许整个应用程序的 graphql 请求,因此使用上面文件中定义的 apolloprovider:

import { apolloprovider } from './contexts/apollocontext'import appcontent from './components/appcontent'const token = localstorage.getitem('@tokenid')// endpoint da sua api graphqlconst graphqluri = 'https://www.example.com'const app = () => {  return (                )}

登录后复制

在本例中,令牌是从 localstorage 中获取的(在本例中,就好像它是使用 @tokenid 键保存的),并且 uri 在文件本身中定义,并传递给 apolloprovider。 appcontent 作为 apolloprovider 的子级传递,因此其中包含的所有内容(即整个应用程序)将能够发出 graphql 请求。
在实践中,具有不同的测试和生产环境,graphqluri 可以来自使用每个环境的 uri 定义的 env。

从 api 具有的名为 user 的查询开始,该查询返回用户的姓名和职业,将定义包含要调用的查询的文件:

import { gql } from '@apollo/client'const get_user = gql`  query getuser {    user {      name      occupation    }  }`export default get_user

登录后复制

get_user 对应于 react 应用程序调用查询的方式,以及用户在 api 中搜索的查询的名称。

在定义appcontent的文件中,将调用get_user查询并使用其返回:

import { useQuery } from '@apollo/client';import GET_USER from './query/UserQuery'const AppContent = () => {  const { loading, error, data } = useQuery(GET_USER)  if (loading) return 

Loading...

if (error) return

Falha na requisição

return (

Welcome!

Name: {data.user.name}

Occupation: {data.user.occupation}

登录后复制

usequery hook 将执行 get_user 中定义的查询,当请求未完成时返回 load true,如果请求失败则返回错误,当请求成功完成时返回数据。只要日期尚未返回,屏幕上就会出现“正在加载...”消息。如果请求以错误结束,则会显示消息“请求失败”。如果请求成功完成,用户的姓名和职业(姓名和职业)将会显示在屏幕上。
这样,apolloclient 就已针对 graphql 请求进行了配置并可供使用。

结论

这个想法是展示如何配置 apolloclient 以使 react 应用程序能够进行 graphql 调用,显示上下文的定义、此上下文的使用以及如何执行查询的示例。
对于那些想要深入研究的人,请点击 apolloclient 文档的链接。

以上就是Setup Apollo Client para requisições graphQL em React的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2648455.html

(0)
上一篇 2025年3月7日 08:13:19
下一篇 2025年3月6日 12:30:56

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 在 React 中为 graphQL 请求设置 Apollo 客户端

    介绍 本文将演示如何使用 apolloclient 库为 graphql 请求设置 react 应用程序。目标是展示如何配置应用程序并提供如何发出请求的示例。 库 @apollo/client:启用状态管理并发出 graphql 请求的库g…

    2025年3月7日
    200
  • React:ReCAPTCHA vlient 和服务器演示

    在此演示中,我将在基于 next.js 构建的 react 应用程序中使用 google recaptcha v3 凭据。 recaptcha 令牌将在客户端生成并在服务器端验证。 链接 演示 代码库 第 1 步:生成您的 recaptch…

    2025年3月7日
    200
  • Chunk-Busters:不要跨越溪流!

    ⚠️ 如果您有光敏性,您可能想跳过此操作。请参阅下面的静态图片,这些灯将开始快速闪烁! 互联网如何运作? 记住标题……我们在这里讨论的是流。 我可以谈论协议、数据包、排序、acks 和 nacks…但我们在这里谈论流,正如你可能猜对了(我相…

    编程技术 2025年3月7日
    200
  • 顶级笔-来源 Nextjs Boilerplates/Starter

    next.js 是一个构建在 node.js 之上的开源 web 开发框架,支持基于 react 的 web 应用程序功能,例如服务器端渲染和生成静态网站。 虽然Next.js。官方允许我们通过 npx create-next-app@la…

    2025年3月7日 编程技术
    200
  • 在 Nodejs 中进行身份验证的正确方法 [uide]

    身份验证是后端开发中最关键但经常被误解的方面之一。由于其复杂性,开发人员经常转向第三方解决方案,例如 auth0 或 supabase。虽然这些都是优秀的工具,但构建您自己的身份验证系统可以提供更大的灵活性和控制力。 在本指南中,您将了解如…

    2025年3月7日
    200
  • 表单事件绑定在 KnockoutJs 中如何工作

    此内容基本上是原始材料的翻译。目的是了解 magento 2 的 knockoutjs 并用葡萄牙语创建有关 knockoujs 的内容。 文档 数据绑定语法绑定上下文“点击”绑定“事件”绑定“提交”绑定“启用”和“禁用”绑定“值”绑定“t…

    2025年3月7日
    200
  • Performance Optimization with Middleware in Nodejs

    中间件通过在请求-响应周期的各个阶段拦截和处理请求,在 node.js 应用程序中发挥着至关重要的作用。虽然中间件提供了灵活性和模块化,但如果不能有效实施,它也可能成为瓶颈。在这篇文章中,我们将探讨优化中间件的策略,以确保您的应用程序发挥最…

    2025年3月7日
    200
  • 一切都围绕Javascript

    JavaScript 在现代 Web 开发中的核心地位 JavaScript 已成为 Web 开发的支柱,从简单的脚本语言发展成为驱动整个 Web 的交互性和动态内容的强大工具。本文探讨了为什么一切都围绕 JavaScript、它的历史意义…

    2025年3月7日
    200
  • 使用 Jest 掌握模拟 API 调用:综合教程

    使用 jest 模拟 api 调用对于编写高效、快速且可靠的测试至关重要。本教程将指导您了解使用 jest 的广泛库和高级场景适配器来控制模拟响应的基本技术。 在为进行 api 调用的代码编写测试时,模拟这些调用非常重要。此策略可确保您的测…

    2025年3月7日 编程技术
    200
  • 分享您的非 CS 之旅:学习 DSA – 我们想听听您的故事

    我想直接听到非计算机科学专业的学生在学习数据结构和算法(DSA)时面临的挑战。 在没有CS背景的情况下学习编码,并进一步研究数据结构和算法,当然不是一条容易的路。我理解面对众多问题模式时的压倒性感觉、困惑以及随之而来的自我怀疑时刻。我想创建…

    2025年3月7日
    200

发表回复

登录后才能评论