用途:帮助理解 Saleor Storefront 的缓存架构,判断哪些数据被缓存、哪些始终实时,并在调试内容不更新、修改缓存行为或配置 webhook 失效时使用。
主要能力:说明数据新鲜度模型——商品详情、分类/集合页、首页缓存 5 分钟,导航缓存 1 小时,购物车、结算、加购始终实时;介绍 Cache Components(PPR)如何混合静态外壳与 Suspense 流式动态内容;列出 product:{slug}、category:{slug}、collection:{slug}、navigation 等缓存标签;给出 webhook 自动失效与手动失效方式。
使用方式:在 next.config.js 中启用 cacheComponents: true;缓存函数内使用 "use cache"、cacheLife("minutes")、cacheTag(...);动态数据(cookies、headers、searchParams、usePathname 等)需包在 Suspense 中;公开查询用 executePublicGraphQL,需会话的查询用 executeAuthenticatedGraphQL 且不可放入 "use cache"。手动失效示例:curl "https://store.com/api/revalidate?secret=xxx&tag=product:blue-hoodie"。webhook 指向 /api/revalidate,订阅商品、分类、集合事件,密钥存入 SALEOR_WEBHOOK_SECRET。
适用场景:调试价格或内容陈旧、修改缓存与失效逻辑、配置 Saleor webhook、回滚 Cache Components。
限制:Cache Components 在 Next.js 中仍为实验性;未配置 webhook 时依赖 TTL;不得在 "use cache" 内访问 cookies/searchParams 或使用 executeAuthenticatedGraphQL;REVALIDATE_SECRET 仅限服务端。