Graphql nuxt.js+Apollo客户端:如何禁用缓存?
我设法得到了一个运行typescript和apollo graphql的nuxt.js+nest.js。 为了测试graphql是否有效,我使用了中的文件,并在nuxt.js页面上添加了一个按钮:单击->通过graphql加载所有CAT 无论是阅读还是写作,一切都是有效的 问题是,在通过Playway执行变异或使用其他graphql数据重新启动nest.js服务器后,nuxt.js-page会在单击时显示旧数据。我必须在浏览器中重新加载整个页面,才能让Apollo客户端获取新数据 我尝试将“无缓存”标志和“仅网络”标志添加到nuxt.config.ts,但未成功:Graphql nuxt.js+Apollo客户端:如何禁用缓存?,graphql,nuxt.js,apollo-client,Graphql,Nuxt.js,Apollo Client,我设法得到了一个运行typescript和apollo graphql的nuxt.js+nest.js。 为了测试graphql是否有效,我使用了中的文件,并在nuxt.js页面上添加了一个按钮:单击->通过graphql加载所有CAT 无论是阅读还是写作,一切都是有效的 问题是,在通过Playway执行变异或使用其他graphql数据重新启动nest.js服务器后,nuxt.js-page会在单击时显示旧数据。我必须在浏览器中重新加载整个页面,才能让Apollo客户端获取新数据 我尝试将“无缓
apollo: {
defaultOptions: {
$query: {
loadingKey: 'loading',
fetchPolicy: 'no-cache'
}
},
clientConfigs: {
default: {
httpEndpoint: 'http://localhost:4000/graphql',
wsEndpoint: 'ws://localhost:4000/graphql'
}
}
}
获取猫的功能:
private getCats() {
this.$apollo.query({ query: GET_CATS_QUERY }).then((res:any) => {
alert(JSON.stringify(res.data, null, 0));
});
}
如何禁用缓存或是否有其他解决方案?我最近遇到了类似的问题,并通过创建一个覆盖默认客户端选项的Nuxt插件来解决该问题: //插件/apollo-overrides.ts 从'@nuxt/types'导入{Plugin}; const:Plugin={app}=>{ //对所有查询禁用缓存 app.provider.defaultClient.defaultOptions={ 查询:{ fetchPolicy:'无缓存', }, }; }; 导出默认覆盖; 不要忘记在Nuxt的配置中注册它: //nuxt.config.js 导出默认值{ ... 插件:[ “~/plugins/apollo覆盖”, ], ... };