要在Vue.js中使用GraphQL,需要先安装相应的依赖,包括vue-apollo
和graphql
:
npm install vue-apollo graphql
接下来在Vue.js的入口文件中,创建一个Apollo Client并将其挂载到Vue实例上:
import Vue from "vue";
import ApolloClient from "apollo-boost";
import VueApollo from "vue-apollo";
const apolloClient = new ApolloClient({
uri: "https://api.example.com/graphql",
});
Vue.use(VueApollo);
const apolloProvider = new VueApollo({
defaultClient: apolloClient,
});
new Vue({
apolloProvider,
render: h => h(App),
}).$mount("#app");
在Vue组件中,可以使用apollo
选项来声明组件需要的GraphQL查询:
<template>
<div>
<ul>
<li v-for="post in posts" :key="post.id">{{ post.title }}</li>
</ul>
</div>
</template>
<script>
import gql from "graphql-tag";
export default {
apollo: {
posts: gql`
query {
posts {
id
title
}
}
`,
},
};
</script>
在上面的代码中,apollo
选项声明了一个名为posts
的查询,该查询获取所有文章的标题和ID。然后在模板中使用v-for
指令遍历查询结果,并渲染每篇文章的标题。