上篇给大家介绍了Java使用Graphql搭建查询服务详解。这里我们讲讲如何在Vue中使用Graphql。
1。初始化vue项目
npm安装- g @vue/cli vue创建vue-apollo-demo
选择默认cli的默认模板就可以了
添加/src/graphql/文章。js/src/graphql跑龙套。js两个文件。
├──node_modules └──公共 │├──ico。位于 │└──index . html ├──src │├──资产 ││└──home.js │├──组件 ││└──HelloWorld.js │├──graphql ││├──article.js │├──跑龙套 ││├──graphql.js │├──App.vue │└──main.js ├──package.json └──package-lock.json
vue-apollo可以帮助你在应用中使用GraphQL的一套工具。
你可以使阿波罗用提高或直接使阿波罗用客户端(需要更多配置工作)。
这名字里用阿波罗刺激就可以了,如果你想要更细粒度的控制,可以去看Vue阿波罗的文档。
阿波罗提升是一种零配置开始使阿波罗用客户的方式。它包含一些实用的默认值,例如我们推荐的InMemoryCache和HttpLink,它非常适合用于快速启动开发。
将它与vue-apollo和graphql一起安装:
npm安装,节省vue-apollo graphql apollo-boost
3。创建ApolloClient实例
在你的应用中创建一个ApolloClient实例:
/src//graphql.js跑龙套 从“进口ApolloClient apollo-boost '; const apolloClient=new apolloClient ({//你需要在这里使用绝对路径 uri: http://127.0.0.1:7001 graphql” }) 出口默认apolloClient;
4。添加GraphQL的操作实例
/src//article.js跑龙套 从“graphql-tag”进口gql 从“. ./进口apolloClient跑龙套/graphql ' 导出功能getArticleList (params) { 返回apolloClient.query ({ 查询:gql 'query(美元:ID) { articleList(第一:第一个美元){ id 标题 内容 作者{ 的名字 年龄 } } }', 变量:参数 }) } 导出功能createArticle (params) { 返回apolloClient.mutate ({ 变异:gql 'mutation(标题:字符串,美元内容:字符串,作者:美元AddAuthor) { 美元addArticle(标题:标题,内容:内容、作者:作者美元){ id 标题 内容 作者{ 年龄 的名字 } } }', 变量:参数 }) }
5。调试
/src/App.vue & lt; template> & lt; div id=坝τ谩北? & lt; div类=傲斜怼北? & lt; h2>文章列表& lt;/h2> & lt; ul> & lt;李v=懊ァ?v, k):关键=発”比; 文章名称:{{v。标题}}- - - - - - - - - - - - - - - - - ({{v.author.name}}) & lt;/li> & lt;/ul> & lt;/div> & lt; div类="形式"比; & lt; h2>添加文章& lt;/h2> 标题:& lt;输入v模型=" formData。标题" type=" text "祝辞& lt; br> 作者名称:& lt;输入v模型=癴ormData.author.name”类型=拔谋尽弊4? lt; br> 作者年龄:& lt;输入v-model.number=" formData.author。年龄" type=" text "祝辞& lt; br> 文章内容:& lt; v模型=" formData文本区域。内容”name=" " id=" "关口=" 30 "行=" 10 "祝辞& lt;/textarea> & lt;按钮@click=" createArticle "祝辞添加& lt;/button> & lt;/div> & lt;/div> & lt;/template> & lt; script> 从“进口{getArticleList, createArticle}。/graphql/文章的 出口默认{ 名称:“应用程序”, 数据(){ 返回{ 列表:[], formData: { 标题:", 内容:”, 作者:{ 名称:”, 年龄:“ } } } }, 安装(){ this.initData () }, 方法:{ initData () { getArticleList({第一:0}) 不要犹豫(res=祝辞{ 控制台。日志(请求成功) console.log (res.data.articleList.length) 这一点。=res.data.articleList列表 }) .catch(呃=祝辞{ console.log (err) }) }, createArticle () { createArticle (this.formData) 不要犹豫(()=祝辞{ this.initData () }) .catch(呃=祝辞{ console.log (err) }) } } } & lt;/script>vue中使用GraphQL的实例代码