如何为 Strapi 插件创建组件

页面摘要: 使用内容类型构建器(Content-Type Builder),或在插件服务端目录中手动定义包含属性与元数据的 schema 文件,来为 Strapi 插件创建可复用的 component 数据结构。

开发 Strapi 插件 时,你可能希望为自己的插件创建可复用的组件。Strapi 中的组件(component)是可复用的数据结构,可在不同的内容类型之间使用。

为 Strapi 插件创建组件,需要采用与创建内容类型类似的方式,但存在一些具体的差异。

创建组件

你可以通过 2 种不同的方式为插件创建组件:使用内容类型构建器(推荐方式)或手动创建。

使用内容类型构建器

为插件创建组件的推荐方式是通过管理面板中的内容类型构建器(Content-Type Builder)。

内容类型构建器文档 提供了关于此过程的更多细节。

手动创建组件

如果你更倾向于手动创建组件,需要:

  1. 在插件的目录结构中创建一个组件 schema。
  2. 确保组件已被正确注册。

插件的组件应放置在插件目录结构中合适的位置。通常应在插件的服务端部分创建它们(参见 插件结构文档)。

关于 Strapi 中组件的更多详细信息,可以参考 模型属性文档。

查看组件结构

Strapi 中的组件在定义时遵循以下格式:

{
  "attributes": {
    "myComponent": {
      "type": "component",
      "repeatable": true,
      "component": "category.componentName"
    }
  }
}

组件 schema 示例

组件 schema 定义了可复用数据片段的结构。以下是某个插件组件 schema 的示例:

{
  "collectionName": "components_my_category_my_components",
  "info": {
    "displayName": "My Component",
    "icon": "align-justify"
  },
  "attributes": {
    "name": {
      "type": "string",
      "required": true
    },
    "description": {
      "type": "text"
    }
  }
}

该配置可确保你的组件在同时启用了 pluginOptions 可见性的内容类型中,既能在内容类型构建器(Content-Type Builder)中使用,也能在内容管理器(Content Manager)中使用。