SuperAPI AI 工具集

sanity

通用与其它

查看项目

更新于 10-16 05:48

技能介绍

用途:Sanity 是“Content as Data”的无头 CMS,Studio v3 是自托管的实时 React 应用,可完全控制编辑体验。适用于结构化内容平台、多渠道发布(网站、移动应用、电商、标牌)、Studio v3 定制以及结合 GROQ 与 Vercel Visual Editing 的实时可视化编辑。

主要能力:以 schema-as-code 声明式定义内容类型、字段与校验规则;使用 GROQ 查询结构化内容,支持过滤与投影;通过 Sanity TypeGen 生成类型安全的查询类型;使用 Portable Text 渲染富文本块内容并自定义 React 组件。

使用方式:用 defineType、defineField 定义 schema,例如 post 文档含 title、slug、publishedAt、content 等字段;用 createClient 配置 projectId、dataset、apiVersion 与 useCdn;用 groq 模板编写查询,如 *[_type == "post" && defined(slug.current)] | order(publishedAt desc)[0...10] { _id, title, "slug": slug.current, publishedAt, "authorName": author->name };用 @portabletext/react 的 PortableText 渲染内容。

最佳实践:用 sanity typegen generate 自动生成 TypeScript 类型;为 Next.js/Nuxt/Remix 配置细粒度 webhook 实现按需重新验证;固定 apiVersion 防止破坏性变更;富文本使用 Portable Text。避免在 GROQ 中使用无类型约束的 *[],不要将写令牌暴露到客户端,查询时使用投影只取 UI 所需字段。

常见问题:Project ID 未配置需在 createClient 提供有效 projectId;schema 未知类型需在 schemaTypes 中导入导出;CORS 错误需在管理面板 API 设置中添加前端域名。

限制:资料未提供收费、价格、平台支持范围等具体信息。