vue中graphql的配置

本文介绍了在Vue项目中如何配置和使用GraphQL。通过vue-apollo插件,设置graphql接口并实现环境配置。文章强调了GraphQL作为中间商的角色,允许一次性获取所需所有数据,避免冗余。在调用方面,通过示例展示了在组件中引入gql语句并使用this.$apollo.mutate进行操作,同时讨论了缓存管理和错误处理。
摘要由CSDN通过智能技术生成

vue项目中graphql的配置

简单理解

最近在接触graphql一种查询语句,个人觉得和axios的get和post请求差不多,但是graphql有点在于它可以用一个接口把请求所需要的数据全部拿来,就相当于一个中间商,你只需要和中间商这一条线通话,他会帮你那你所需要的数据,不用向之前那样我可能只拿一个用户名字,结果后端返回全部信息(包括身高体重之类的,这样就会显得很冗余)

环境配置

这里在前端和graphql之间使用的是vue-apollo工具,通过官方的文档先vue add apollo下载所使用的包,添加完成后插件会询问我们是否添加示例代码,是否添加 GraphQL 服务,是否配置 Apollo 引擎,我们这里不太需要这些,直接一路选 N 就可以了,在vue-apollo.js文件中配置你的graphql接口
在这里插入图片描述
在main.js中引入vue-apollo文件
在这里插入图片描述
在这里插入图片描述
修改根目录下的apollo.config.js用于配置 VScode 的Apollo GraphQL插件,获取服务器 的 GraphQL 类型定义;需要 VScode 提前安装Apollo GraphQL插件

在这里插入图片描述
一般在拿到接口是都会携带token,在拦截器里把要携带的token携带上

简单调用

一般在src的api中新建graphql文件,在graphql里写上各种gql结尾的语句
src/graphql下创建addOneGoods.gql,用于新增商品:
mutation addOneGoods($goods: GoodsInsertTypeGraphql!) {
addOneGoods(goods: $goods) {
id
name
price
count
remark
}
}

在页面中调用一般通过this.apollo来访问
引入addOneGoods.gql,使用this.$apollo.mutate调用此 Mutations,新增商品信息:
import ADD_ONE_GOODS from ‘@/graphql/addOneGoods.gql’

// 新增一个商品
handleAddOneGoods(goods: IGoods) {
this.KaTeX parse error: Expected '}', got 'EOF' at end of input: …{ this.message.success(‘修改商品信息成功’)
})
.catch(e => {
this.$notify.error(请求错误: ${e.message})
})
}
IGoods是商品的类型定义:
export interface IGoods {
id?: string
name: string
price: number
count: number
remark: string
}

由于 vue-apollo 库默认使用了接口缓存,所以短时间内重复的 query 请求不会去获取最新数据,所以在实际使用this.$apollo.mutate方法的时候都会写update回调
,用于更新对应 query 的缓存数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值