📜  vue 3 apollo 客户端 (1)

📅  最后修改于: 2023-12-03 15:05:52.433000             🧑  作者: Mango

Vue 3 Apollo 客户端

Vue 3 Apollo 客户端是一种可以帮助你在Vue 3应用程序中与GraphQL API进行交互的解决方案。 它是基于Vue 3的响应式数据绑定功能和Apollo Client的几个关键设计原则构建的。

安装

你可以使用 npm 或 yarn 来安装 Vue 3 Apollo 客户端。

npm
npm install @vue/apollo-client graphql apollo-boost
yarn
yarn add @vue/apollo-client graphql apollo-boost
用法
安装

在你的Vue应用程序中,你需要在 main.js 文件中安装 Apollo 客户端。 安装过程使用到了 createApolloClient 函数。

import { createApolloClient } from '@vue/apollo-client';
import { ApolloClient } from 'apollo-boost';

const apolloClient = new ApolloClient({
  uri: 'https://api.example.com/graphql',
});

// 使用 createApolloClient 函数将 Apollo 客户端实例注入到应用程序中
createApolloClient({
  global: true,
  clients: {
    default: apolloClient,
  },
});

现在你可以将 apollo-client 插件添加到你的Vue应用程序的插件列表中,并将 defaultClient 属性设置为 Apollo 客户端。 这将确保所有的Vue组件都可以使用 Apollo 客户端。

import { createApp } from 'vue';
import { DefaultApolloClient } from '@vue/apollo-client';
import App from './App.vue';

const app = createApp(App);

app.use(DefaultApolloClient);
在Vue组件中使用

现在我们已经安装了 Apollo 客户端,我们可以在Vue组件中使用它。 为此,你需要使用 Vue 3提供的 setup() 函数。

<template>
  <div>
    <h1>Github 用户</h1>
    <ul>
      <li v-for="user in users" :key="user.id">{{ user.name }}</li>
    </ul>
  </div>
</template>

<script>
import gql from 'graphql-tag';
import { useQuery } from '@vue/apollo-client';

const GET_USERS = gql`
  query {
    users {
      id
      name
    }
  }
`;

export default {
  name: 'MyComponent',
  setup() {
    // 使用 useQuery 钩子从 GraphQL API 中查询数据
    const { loading, error, data } = useQuery(GET_USERS);

    return { loading, error, users: data?.users };
  },
};
</script>

在上面的代码中,我们使用了 gql 函数定义了查询语句,并使用 useQuery 钩子从GraphQL API中查询数据。请求前的加载状态和出错状态都可以通过钩子的返回值来获取。loading 变量表示是否正在加载数据,error 变量表示是否存在错误,data 变量返回来自GraphQL API的数据。我们可以将这些值传递给组件的模板,以实现数据的实时-响应式绑定。

结论

Vue 3 Apollo 客户端为Vue 3应用程序提供了与GraphQL API进行交互的简单而强大的解决方案。它易于配置且可以与现有的Vue 3应用程序一起使用,提高了开发效率。