在vue项目中集成graphql(vue-ApolloClient)


Posted in Javascript onSeptember 08, 2018

1.什么是graphql

GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时

下图展示graphql所处的位置

在vue项目中集成graphql(vue-ApolloClient)

2.优点

1.GraphQL API 有强类型 schema

GraphQL schema是强类型的,可使用SDL(GraphQL Schema Definition Language)来定义。比如,可以使用构建工具验证API请求,编译时检查API调用可能发生的错误

2.按需获取

在不添加后端接口的前提下减少不必要的字段,做到前端自主订阅字段

3.使用 vue集成graphql

1.安装vue脚手架 npm install -g vue-cli

2.安装vue-apollo客户端 vue-apollo graphql apollo-client apollo-link apollo-link-http apollo-cache-inmemory graphql-tag

3.webpack.base.conf.js 安装加载器加载graphql后缀文件

{
test: /\.(graphql|gql)$/,
exclude: /node_modules/,
loader: 'graphql-tag/loader'
},

4.main.js 添加

import { ApolloClient } from 'apollo-client'
import { HttpLink } from 'apollo-link-http'
import { InMemoryCache } from 'apollo-cache-inmemory'
import VueApollo from 'vue-apollo'

const httpLink = new HttpLink({
// You should use an absolute URL here
//config.js 代理设置
// '/graphql': {
// target: "http://eshipe.net:3000/graphql",
// changeOrigin: true,
// pathRewrite: {
// '^/graphql': '/graphql'
// }
// },
uri: '/graphql',//访问地址,在这里使用代理
})

// Create the apollo client
const apolloClient = new ApolloClient({
link: httpLink,
cache: new InMemoryCache(),
connectToDevTools: true,
})

// Install the vue plugin
Vue.use(VueApollo)
const apolloProvider = new VueApollo({
defaultClient: apolloClient,
})

new Vue({
router,
store,
provide: apolloProvider.provide(),//注册全局组件
}).$mount('#app')

5.添加search.graphql文件

//定义查询
query q_user($id: Int){
User(id: $id){
id
address
name
}
}

6.具体的vue组件中

1.import gql from "graphql-tag";

2.import {q_user} from'search.graphql'

3. 具体方法中使用

this.$apollo.query({
query: q_user,
variables: {
id: 1,
},
}).then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})

4.可能遇到的问题

1.npm版本问题

解决思路:npm版本回退 npm install -g npm@4.6.1

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Firefox outerHTML实现代码
Jun 04 Javascript
JS去除字符串的空格增强版(可以去除中间的空格)
Aug 26 Javascript
JavaScript中使用构造函数实现继承的代码
Aug 12 Javascript
常用的几段javascript代码分享
Mar 25 Javascript
javascript实现验证身份证号的有效性并提示
Apr 30 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
Sep 10 Javascript
JS+CSS实现的蓝色table选项卡效果
Oct 08 Javascript
jQuery动态添加与删除tr行实例代码
Oct 18 Javascript
微信小程序实现图片自适应(支持多图)
Jan 25 Javascript
Javascript删除数组里的某个元素
Feb 28 Javascript
深入了解Hybrid App技术的相关知识
Jul 17 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
May 09 Javascript
React Native开发封装Toast与加载Loading组件示例
Sep 08 #Javascript
原生JS实现前端本地文件上传
Sep 08 #Javascript
JS实现可视化文件上传
Sep 08 #Javascript
js实现文件上传功能 后台使用MultipartFile
Sep 08 #Javascript
vue-router的HTML5 History 模式设置
Sep 08 #Javascript
vue移动端下拉刷新和上拉加载的实现代码
Sep 08 #Javascript
react 父子组件之间通讯props
Sep 08 #Javascript
You might like
php 备份数据库代码(生成word,excel,json,xml,sql)
2013/06/23 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
JavaScript执行效率与性能提升方案
2012/12/21 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
Jquery给基本控件的取值、赋值示例
2014/05/23 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
2016/04/15 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
windows下vue.js开发环境搭建教程
2017/03/20 Javascript
使用JavaScript进行表单校验功能
2017/08/01 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
解决Vue中 父子传值 数据丢失问题
2019/08/27 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
2020/08/14 Javascript
Python单链表的简单实现方法
2014/09/23 Python
python中实现指定时间调用函数示例代码
2017/09/08 Python
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
python 实现图片上传接口开发 并生成可以访问的图片url
2019/12/18 Python
Python监控服务器实用工具psutil使用解析
2019/12/19 Python
Node.js 和 Python之间该选择哪个?
2020/08/05 Python
css3实现input输入框颜色渐变发光效果代码
2014/04/02 HTML / CSS
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
大学生就业自我鉴定
2013/10/26 职场文书
玲玲的画教学反思
2014/02/04 职场文书
物流专业自荐信
2014/05/23 职场文书
企业贷款委托书格式
2014/09/12 职场文书
买房协议书范本
2014/10/23 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
求职导师推荐信范文
2015/03/27 职场文书
干部培训简讯
2015/07/20 职场文书