【问题标题】:Vue 3 & Apollo Composable - Are we obliged to call useMutation and useQuery inside setup()Vue 3 和 Apollo Composable - 我们是否必须在 setup() 中调用 useMutation 和 useQuery
【发布时间】:2021-08-25 17:58:11
【问题描述】:

我是 Vue 3 和 Apollo Composable 的新手。我首先创建了一个 Vuex 存储和一个模块服务来从 GraphQL 端点获取数据。此外,我注意到在实现过程中我无法在 setup() 之外调用 useMutation 和 useQuery。

我能否对此进行更多解释,以及是否还有其他方法可以在 setup() 之外使用 useQuery 和 useMutation ,您可以告诉我吗?

【问题讨论】:

    标签: graphql vuejs3 vue-apollo


    【解决方案1】:

    是的。您可以使用 provideApolloClient 在组件之外访问它。你可以这样做:

    import { provideApolloClient } from '@vue/apollo-composable'
    import { defaultClient } from '../../vue-apollo';
    import { useQuery, useResult, useLazyQuery } from '@vue/apollo-composable'
    
    provideApolloClient(defaultClient)
    

    从 vue-apollo 文件导入 defaultClient 是我自己的文件,如果我定义了使用该 HttpLink 的 HttpLink 和 ApolloClient。如果您需要澄清,请随时联系我。

    【讨论】:

    • 你为什么要从另一个文件导入。默认客户端应该可以从 Vue 实例访问吧?
    • useQuery 以这种方式工作,但 useMutation 不是。有不同的解决方案,我可以在 setup() vue 组件之外使用突变?
    • @LukasGur 他们现在用 vue-apollo v4 alpha 16 修复了它:github.com/vuejs/vue-apollo/issues/1262
    猜你喜欢
    • 2020-08-10
    • 2020-11-08
    • 2022-07-19
    • 1970-01-01
    • 2020-06-04
    • 2019-10-05
    • 2022-08-09
    • 2022-01-06
    • 2017-08-29
    相关资源
    最近更新 更多