You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Directus CMS中创建类似Strapi的组件或动态区域?

在Directus中实现Strapi组件/动态区域的等效方案

针对你提到的Strapi组件(可复用字段组)和动态区域(多类型组件集合),Directus有专门的替代方案,普通Group字段确实无法满足需求,具体实现如下:

一、替代Strapi「可复用组件」

Strapi的组件核心是可跨集合复用的嵌入字段组,Directus对应两种实现方式:

1. 共享字段组(推荐)

这是最接近Strapi组件的实现,字段组可跨集合复用,修改后同步所有引用:

  • 操作步骤:
    • 进入「设置 > 数据模型 > 共享字段」
    • 创建新的共享字段组,添加所需字段(如文本、图片、日期等)
    • 在目标集合的字段配置中,点击「添加字段 > 共享字段」,选择已创建的字段组即可
  • 特性:数据嵌入父集合,无需关联,和Strapi组件的存储逻辑完全一致。

2. 独立集合+关联(适合需独立管理的组件)

如果需要组件实例可单独编辑管理,可创建独立集合:

  • 创建一个新集合(如card_component),添加组件所需字段
  • 在父集合中创建「一对多」或「多对一」关联,关联到这个组件集合
  • 特性:组件数据独立存储,支持单独筛选、编辑,适合复杂复用场景。

二、替代Strapi「动态区域」

Strapi动态区域允许在同一位置添加多种类型的组件并调整顺序,Directus用Repeater字段+条件逻辑实现:

  • 操作步骤:
    1. 先创建好所有需要的共享字段组(对应不同的组件类型)
    2. 在父集合中添加一个Repeater字段(命名如dynamic_content)
    3. 在Repeater内部添加一个下拉字段(如component_type),选项设置为你的组件类型(如card、banner、text_block)
    4. 将每个共享字段组添加到Repeater中,给每个字段组设置条件逻辑:仅当component_type匹配对应类型时显示
    5. 保存配置后,在内容编辑界面即可选择组件类型、添加多个条目并调整顺序

备选:Layout字段(Directus 10+)

如果不需要高度自定义,Directus 10+的Layout字段提供预设布局类型,可快速选择不同组件样式,适合轻量化场景。

为什么普通Group字段不行?

普通Group字段是单一、不可复用的字段容器,只能在当前集合内使用,无法跨集合复用,也不支持动态切换不同类型的字段组,因此无法替代Strapi的组件/动态区域。

内容的提问来源于stack exchange,提问作者Shubham Nikam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 09:00:56