vue中使用GraphQL的实例代码

  

上篇给大家介绍了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的实例代码