SuperAPI AI 工具集

convex-create-component

编程与开发

查看项目

更新于 10-15 20:34

技能介绍

用途:在现有 Convex 应用中创建可复用的 Convex 组件,把可复用的后端逻辑(自有的表、函数、持久状态)抽出为独立组件,并为主应用提供小范围的封装 API。适用于新建组件、抽取可复用逻辑、构建应自持表与流程的第三方集成、以及打包给多个应用复用。不适用于一次性业务逻辑、无需 Convex 表或函数的轻量工具、应留在 convex/ 的应用级编排,以及普通 TypeScript 库即可满足的场景。

主要能力与流程:先确认用户要构建什么及最终目标;用决策树选择组件形态(仅本应用用选 Local,发布或跨应用共享选 Packaged,明确需要本地加共享库代码选 Hybrid,不确定默认 Local),并只读对应的一份参考文件;判断组件是否必要;规划组件拥有的表、暴露的公共函数、需由应用传入的数据(认证、环境变量、父级 ID)、留在应用中的封装或 HTTP 挂载。随后用 convex.config.ts、schema.ts 和函数文件建立结构,组件函数必须从组件自身的 ./_generated/server 导入,而不是应用的生成文件。在应用的 convex/convex.config.ts 中用 app.use(...) 安装(若不存在则创建),通过 components.<name> 结合 ctx.runQuery、ctx.runMutation 或 ctx.runAction 调用。React 客户端、HTTP 调用方或公共 API 需要访问时,应在应用中编写封装函数而非直接暴露组件函数。完成后运行 npx convex dev 并修复代码生成、类型或边界问题。

关键限制:认证与环境访问必须留在应用侧,因为组件内 ctx.auth 不可用、组件函数无法读取 process.env;父应用 ID 跨边界需按字符串传递,组件参数与 schema 中不要使用 v.id("父表");组件不能自行注册 HTTP 路由,需在应用 convex/http.ts 挂载;跨组件边界的分页需用 convex-helpers 的 paginator;所有公共函数应带 args 与 returns 校验器。验证可按 npx convex codegen --component-dir convex/components/<name>、npx convex codegen、npx convex dev 的顺序尝试;新仓库在配置 CONVEX_DEPLOYMENT 前可能失败,遇到登录或部署配置阻塞时应询问用户。官方文档为 Authoring Components。