用途:指导在 Convex 后端中使用组件来封装功能,实现模块化、可复用的后端结构。组件是自包含的迷你后端,包含自己的数据库 schema、函数(queries、mutations、actions)、隔离的数据表和清晰的 API 边界。
主要能力:将单体代码拆分为专注单一职责的组件;通过 npm 安装官方组件,如 @convex-dev/ratelimiter、@convex-dev/better-auth、@convex-dev/r2、@convex-dev/storage、@convex-dev/polar、@convex-dev/agent、@convex-dev/embeddings、@convex-dev/aggregate、@convex-dev/action-cache、@convex-dev/sharded-counter、@convex-dev/migrations、@convex-dev/workflow;也支持创建自定义组件。
使用方式:用 npm install @convex-dev/ratelimiter 安装,在 convex.config.ts 中用 defineApp 注册组件,再通过 components.xxx 调用。创建自定义组件需建目录、写 convex.config.ts(defineComponent)、schema.ts 和函数文件,然后注册使用。文档给出兄弟组件协作示例,主应用负责编排多个组件。
适用场景:多租户 SaaS、电商平台、AI 应用等需要功能隔离与复用的后端。
限制:组件无法访问父应用的表,必须以参数传入数据;组件之间不能直接互相调用;每个组件表隔离,互相看不到数据。创建组件的合适理由是功能自包含、可跨项目复用、复杂数据模型或第三方集成封装,一次性业务逻辑则不适合。文档未提供具体收费、价格或性能数据。