vue-apollo的多客户端的用法

2019-12-23 23:38:59

参考地址 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;

    });

},


  • 2019-10-16 21:02:47

    vue中mixins的详细分析一

    混入 (mixins): 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。

  • 2019-10-16 21:04:47

    vue中mixins的详细分析二

    当混合里面包含异步请求函数,而我们又需要在组件中使用异步请求函数的返回值时,我们会取不到此返回值,如下:

  • 2019-10-19 11:22:49

    window安装ffmpeg-concat出现的坑和解决办法

    最后还是选择了fluent-ffmpeg,没特效就没特效吧。最起码有声音吗。 ffmpeg-contact也可以有声音,但是需要先提取出来再合并进去,不知道能不能有效同步,果断放弃。