-
配置 Apollo 客户端: 创建一个
apollo.js
文件来配置 Apollo 客户端:// src/apollo.js import { ApolloClient, InMemoryCache, createHttpLink } from '@apollo/client/core'; import { DefaultApolloClient } from '@vue/apollo-composable'; import { provide } from 'vue'; const httpLink = createHttpLink({ uri: 'https://your-graphql-endpoint.com/graphql', }); const cache = new InMemoryCache(); const apolloClient = new ApolloClient({ link: httpLink, cache, }); export function provideApolloClient(app) { app.provide(DefaultApolloClient, apolloClient); }
-
在 Vue 应用中提供 Apollo 客户端: 在
main.js
中引入并提供 Apollo 客户端:// src/main.js import { createApp } from 'vue'; import App from './App.vue'; import { provideApolloClient } from './apollo'; const app = createApp(App); provideApolloClient(app); app.mount('#app');
-
使用 Apollo 查询数据: 在组件中使用
useQuery
来执行 GraphQL 查询:<!-- src/components/HelloWorld.vue --> <template> <div> <h1>GraphQL Query Example</h1> <div v-if="loading">Loading...</div> <div v-if="error">Error: {{ error.message }}</div> <div v-if="data"> <p>{{ data.hello }}</p> </div> </div> </template> <script> import { useQuery } from '@vue/apollo-composable'; import gql from 'graphql-tag'; const HELLO_QUERY = gql` query Hello($name: String!) { hello(name: $name) } `; export default { setup() { const { result: data, loading, error } = useQuery(HELLO_QUERY, { name: 'World' }); return { data, loading, error }; }, }; </script>