前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GraphQL学习第七篇 -Vue中使用Vue-apollo进行查询操作

GraphQL学习第七篇 -Vue中使用Vue-apollo进行查询操作

作者头像
越陌度阡
发布2020-11-26 12:28:05
1.3K0
发布2020-11-26 12:28:05
举报

在Vue中集中Vue-apollo以后(如何集成请查看本专栏第六篇),就可以使用它进行查询数据了。

1. 简单查询

代码语言:javascript
复制
<template>
    <div class="news">
        <ul>
            <li v-for="(item,index) of navList" :key="index">{{item.title}}</li>
        </ul>
    </div>
</template>

<script>
// 引入模块
import gql from "graphql-tag";

export default {
    name: "app",
    data() {
        return {};
    },
    // apollo为默认选项
    apollo: {
        // 接口名称,需要与服务端对应
        navList: gql`
            {
                navList {
                    title
                }
            }
        `
    }
};
</script>

<style scoped>
</style>

apollo选项里还可以这样写

代码语言:javascript
复制
apollo: { 
    // 接口名称,需要与服务端对应
    navList(){ 
        return{ 
            query:gql`
                query { 
                    navList{ 
                        title 
                    } 
                }
            ` 
        } 
    } 
}

2. 带参查询

代码语言:javascript
复制
<template>
    <div class="article">
        <button @click="getData()">
            获取文章数据
        </button>
        <ul>
            <li v-for="(item,key) of articleList" :key="key">
                {{item.title}}
            </li>
        </ul>
    </div>
</template>

<script>
// 引入模块
import gql from "graphql-tag";

// 定义查询语句
var articleListGql = gql`
    query articleList($page: Int!, $pageSize: Int!) {
        articleList(page: $page, pageSize: $pageSize) {
            title
        }
    }
`;
export default {
    name: "app",
    data() {
        return {
            articleList: []
        };
    },
    methods: {
        // 获取数据
        getData() {
            // $apollo.addSmartQuery为默认方法
            this.$apollo.addSmartQuery("articleList", {
                // 查询语句
                query: articleListGql,
                // 实参列表
                variables: {
                    page: 1,
                    pageSize: 10
                },
                // 响应结果
                result(response) {
                    console.log(response);
                },
                // 错误处理
                error(err) {
                    console.log(err);
                }
            });
        }
    }
};
</script>

<style scoped>
</style>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档