vue-apollo的多客户端的用法

vue-apollo的多客户端的用法以及apollo.js的配置

关于如何安装和如何使用,这篇文章就先暂时不介绍了,如果不清楚就看我另一篇关于vue-apollo的用法

在做项目中,有时候后端的接口是按模块功能去划分的,那么请求的地址就会不同,关于vue-apollo的多客户端配置如下:

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
  uri: './v1/assess/api',
  credentials: 'same-origin',
});

const otherHttpLink = new HttpLink({
  // You should use an absolute URL here
  uri: './v1/broker', 
  // 这个地址就是我们做另外部分的功能所用到的接口地址
  credentials: 'same-origin',
});

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

const otherApolloClient = new ApolloClient({
  link: otherHttpLink,
  cache: new InMemoryCache(),
  connectToDevTools: true,
});

export default new VueApollo({
  clients: {
    default: apolloClient,
    // 这个是我设置的默认接口的地址
    other: otherApolloClient,
    // 这是另一部分功能的接口地址,另外这个key名,在页面中写具体请求时会用到,因为我们要指定接口的地址
  },
  defaultClient: apolloClient,
});

那么配置好以后,关于用法,官方文档介绍了两种用法,那么我呢就以其中的一种做一个说明,因为我的项目中就是这么使用的:
例如:

loadPlan() {
    this.$apollo.query({
      query: getBrokerPlanDetail,
      variables: {
        id: this.planId,
      },
      client: 'other',
      //其中client是自己内置的属性,他的值注意要和自己在apollo.js中配置的key要保持一致
      fetchPolicy: 'no-cache',
    }).then(({ data }) => {
      this.brokerPLan = data.brokerPlan;
    });
},

其用法呢也就不做过多的介绍,因为另一篇文章也有做介绍,这篇文章只是接着上一篇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值