SuperAPI AI 工具集

shopify-hydrogen

前端与建站

查看项目

更新于 10-16 02:16

技能介绍

用途

Shopify Hydrogen 是 Shopify 为无头电商(headless commerce)提供的官方技术栈,基于 React Router v7 构建。它提供工具、处理器与组件,用于在 Shopify Storefront API 之上构建店面(storefront)。

所有导出均来自 @shopify/hydrogen,该包会重新导出 @shopify/hydrogen-react 的全部内容。源码地址:https://github.com/Shopify/hydrogen/tree/main/packages/hydrogen/src

主要能力

createHydrogenContext

在 server.ts 中设置全部 Hydrogen 服务的单一入口。创建并串联 storefront、customerAccount 和 cart。

  • 必需环境变量:PUBLIC_STORE_DOMAIN、PUBLIC_STOREFRONT_API_TOKEN、PRIVATE_STOREFRONT_API_TOKEN、PUBLIC_STOREFRONT_ID、PUBLIC_CUSTOMER_ACCOUNT_API_CLIENT_ID、SHOP_ID
  • 返回:{ storefront, customerAccount, cart }

缓存策略

策略 maxAge staleWhileRevalidate 适用场景
CacheNone() — — 用户特定或实时数据
CacheShort() 1s 9s 频繁变化的数据
CacheLong() 1hr 23hr 稳定数据(店铺信息、菜单)
CacheCustom({...}) 自定义 自定义 细粒度控制

Cart Handler

createCartHandler 提供所有购物车操作:get、create、addLines、updateLines、removeLines、updateDiscountCodes、addGiftCardCodes、updateBuyerIdentity、updateNote、setMetafields 等。

CartForm

用于购物车变更的表单组件。使用 CartForm.ACTIONS 枚举(LinesAdd、LinesUpdate、LinesRemove、DiscountCodesUpdate 等),并通过 React Router 的 useFetcher 提交。

useOptimisticCart

在本地应用待处理的购物车变更,以实现即时 UI 反馈。需要 LinesAdd 输入中包含 selectedVariant。

分页

getPaginationVariables(request, { pageBy }) + <Pagination connection={...}> 组件。GraphQL 查询必须包含 pageInfo { hasPreviousPage hasNextPage startCursor endCursor }。

SEO

getSeoMeta(...) 生成 React Router 的 meta 数组。支持 title、titleTemplate、description、url、media、jsonLd、robots、alternates。jsonLd 会在各路由间拼接。

Sitemaps

getSitemapIndex + getSitemap —— 两级站点地图生成。需要 Storefront API 2024-10 及以上版本。

内容安全策略(CSP)

createContentSecurityPolicy({ shop: { checkoutDomain, storeDomain } }) 返回 { nonce, header, NonceProvider }。

使用方式

在线文档搜索

在技能包自身文件夹内运行以下命令(路径相对于技能根目录):

node scripts/search_shopify_docs.mjs "<query>"

该脚本直接查询 Shopify 开发者文档(shopify.dev),返回 Hydrogen 的最新 API 参考、代码示例与指南。

示例:

node scripts/search_shopify_docs.mjs "createHydrogenContext"
node scripts/search_shopify_docs.mjs "CartForm actions"
node scripts/search_shopify_docs.mjs "caching strategies"
node scripts/search_shopify_docs.mjs "getSeoMeta"
node scripts/search_shopify_docs.mjs "Pagination component"

离线/缓存参考

当搜索脚本不可用时,可参考以下文档:

文件 内容
references/01-setup.md 完整的 server.ts 设置、环境变量、会话、createHydrogenContext 选项
references/02-caching.md 缓存策略、AllCacheOptions 类型、generateCacheControlHeader
references/03-cart.md 购物车路由设置、CartForm 示例、useOptimisticCart 模式
references/04-ssr-performance.md SSR 包瘦身(worker 内联动态导入 —— resolveId stub 模式)、包审计、TTFB 测量方法

适用场景

适用于基于 Shopify Storefront API 构建无头电商店面的开发场景,特别是需要购物车处理、缓存策略、分页、SEO、站点地图、CSP 等核心能力的 React Router v7 项目。

限制

站点地图功能需要 Storefront API 2024-10+ 版本。其余限制暂未提供。