介绍
apollo-cant-cache-me
是一个npm包,它为Apollo Client提供了可以从缓存中排除部分查询的能力。这对于那些需要确保某些查询永远不会从缓存中读取结果的情况非常有用,例如涉及用户身份验证的查询。
安装
使用npm安装apollo-cant-cache-me
:
npm install apollo-cant-cache-me
使用
在Apollo Client的配置对象中添加
cacheRedirects
选项。cacheRedirects
应该是一个函数,该函数应返回一个对象,其中每个键是查询名称,每个值都是一个布尔值。如果值为true
,则该查询将从缓存中排除。import { ApolloClient } from '@apollo/client'; import { cacheRedirects } from 'apollo-cant-cache-me'; const client = new ApolloClient({ // ... cacheRedirects: cacheRedirects() // 添加该选项 })
在GraphQL查询中使用
@doNotCache
指令来标记不想在缓存中保存的字段或子查询。请注意,这个指令需要在GraphQL输入文档中正确定义。-- -------------------- ---- ------- ----- ----------- - ---- - -- ---- ----- - --------------------------- ------------- ----------- - -
示例代码
-- -------------------- ---- ------- ------ - ------------ - ---- ----------------- ------ - ------------- - ---- ----------------------- ------ - -------------- - ---- ----------------------- ----- ----- - --- ---------------- ----- ------ - --- -------------- ---- ---------------------------------- ------ ------ --------------- ---------------- --- ----- --------- - ---- ----- ----------- - ---- - -- ---- ----- - --------------------------- ------------- ----------- - - -- -------------- ------ --------- -- ------------ -- ---------------------
总结
apollo-cant-cache-me
是一个非常实用的npm包,它提供了一种简单的方法来控制哪些查询不应该从缓存中读取结果。通过使用@doNotCache
指令,开发人员可以在GraphQL文档中精确地标记需要永远避免缓存的字段或子查询。这对于那些需要涉及用户身份验证的查询非常有用,可以保护敏感信息不被意外地从浏览器缓存中泄露。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056ead81e8991b448e773c