介绍
本文将展示如何为 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) returnLoading...
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