【问题标题】:How to clean all cache data?如何清理所有缓存数据?
【发布时间】:2020-11-28 11:07:11
【问题描述】:

是否可以将垃圾回收cache.gc()vue-apollo 一起使用?

有什么方法可以清理所有的存储缓存数据吗?

例如,是否可以在生命周期内运行它?

<script>
import { apolloClient } from "@/main";
export default {
 mounted() {
    this.$apollo.cache.gc();
    // or may be this.$apollo.queries.birds.cache.gc();
    // or this.$store.cache.gc();
  },
};
</script>

第一次注册后我无法获得列表。我必须刷新它。

【问题讨论】:

  • 您可以随时将fetchPolicy: "network-only" 添加到您的 Apollo 查询中,它会跳过缓存。
  • 我想缓存,但在某些情况下我只需要一种方法来擦除它
  • 也许这个例子可以帮助你 - github.com/apollographql/apollo-client/issues/…
  • apolloClient.cache.data.clear();_?
  • 或者await client.clearStore(); await persistor.purge()

标签: vue.js apollo-client vue-apollo


【解决方案1】:

首先,初始化 apollo 客户端:

import { ApolloClients } from '@vue/apollo-composable';
import { createApp, provide, h } from 'vue';
import App from './App.vue';
// other ...

const apolloClient = new ApolloClient({
    link: from([errorLink, requestInterceptor, authLink, traceLink, httpLink]),
    cache: new InMemoryCache({
        addTypename: false
    })
});

const app = createApp({
    setup() {
        provide(ApolloClients, {
            default: apolloClient
        });
    },
    render: () => h(App)
});

export default apolloClient

然后,您可以随时清除 apollo 网络缓存:

import apolloClient from 'xxx.ts'

apolloClient.cache.reset()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 2020-03-28
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多