由于核心组件是全新的,并且具备多种优势,因此建议新的 AEM 项目使用这些组件。对于现有项目,可以考虑在进行更大型项目工作期间进行迁移,例如在重新品牌化或整体重构工作期间。
因此,Adobe 提供了以下建议:
核心组件的功能强大、灵活且易于使用和自定义。遵循几个关键准则将确保成功实施带核心组件的项目。
任何新项目应该使用核心组件实施。但是,现有组件通常具有广泛的基础组件实施。
对现有项目进行较大的变动(例如,品牌再造或者整体重构)通常会提供迁移到核心组件的机会。为了协助此迁移,Adobe 提供了多种迁移工具,以鼓励采用核心组件和最新的 AEM 技术。
AEM 现代化工具可以轻松地实现下列转换:
有关这些工具用法的更多信息,请参阅相应文档。
AEM 现代化工具是社区合作的结果,并非由 Adobe 提供支持或担保。
由于 AEM as a Cloud Service 自动随最新版本的核心组件提供,在您从内部部署 AEM 安装迁移时,您需要在项目 pom.xml
文件中删除与核心组件的任何依赖关系。
您的代理组件仍然像以前一样工作,因为代理指向必需的超类型,而超类型路径中有版本。通过这种方法,只需要删除依赖关系,就可以使核心组件像内部部署一样在 AEMaaCS 中工作。
与任何其他 AEMaaCS 项目一样,您还需要将依赖关系添加到 AEM SDK jar。这并非特定于核心组件,但是必需的。
<dependency>
<groupId>com.adobe.aem</groupId>
<artifactId>aem-sdk-api</artifactId>
</dependency>
有关 AEMaaCS 项目的更多信息,请参阅文档 AEM 项目结构。
核心组件是 AEM 的一个组成部分,依原样提供支持,并作为“快速入门”的一部分提供,须遵循相同的条款和条件。
与其他 AEM 产品功能一样,一般规则是:首先宣布组件将弃用,并且最早从以下 AEM 发行版本中删除。这为客户提供了至少一个发行周期的时间,在停止支持之前移到组件的新版本。
每个组件的版本都清楚地声明了其支持的 AEM 版本。当某个 AEM 版本不再受到支持时,该版本 AEM 的核心组件也不再受到支持。
有关组件自定义项支持的详细信息,请参阅自定义核心组件页面。
下表概述了核心组件与基础组件的不同之处。
有关创作功能的详细信息以及可以预配置它们的选项,请参阅有关它们的创作页面。
功能 | 核心组件 | 基础组件 |
---|---|---|
逻辑实施 | Java POJO 和 Sling 模型注释 | JSP 代码 |
标记定义 | HTML 模板语言 (HTL) 语法 | JSP 代码 |
XSS 净化 | 由 HTL 自动执行 | 大部分手动 |
CSS 类命名 | 基于 Block Element Modifier (BEM) 表示法(截止到发行版本 2.0.0)的标准化命名约定 | 自定义架构 |
对话框定义 | Coral 3 | Coral 2 + 经典 UI |
JSON 输出 | Sling 模型导出器和 Jackson 序列化 | 默认 Sling Servlet |
版本控制 | 用于模型和 HTL | 无 |
测试 | 单元测试 + 集成测试 | 集成测试 |
交付 | 通过公开 GitHub | 通过 Quickstart |
许可 | Apache 许可 | Adobe 专有 |
参与 | 通过拉取请求 | 不可能 |
辅助功能 | 与 WCAG 2.0 AA 标准完全兼容 | 仅与 WCAG 2.0 AA 标准部分兼容 |
下表列出了可用的核心组件、其 API 的链接,并说明了它们取代的基础组件。
核心组件 | 描述 | 取代的基础组件 |
---|---|---|
页面 | 响应式页面,与模板编辑器配合使用 | /libs/foundation/components/page /libs/wcm/foundation/components/page |
痕迹导航 | 页面层次结构导航 | /libs/foundation/components/breadcrumb |
标题 | H1-H6 标题 | /libs/foundation/components/title /libs/wcm/foundation/components/title |
文本 | 富文本 | /libs/foundation/components/text /libs/foundation/components/table /libs/wcm/foundation/components/text |
图像 | 智能和延迟加载优化再现大小 | /libs/foundation/components/image /libs/foundation/components/adaptiveimage /libs/foundation/components/logo /libs/foundation/components/mobileimage /libs/foundation/components/mobilelogo /libs/wcm/foundation/components/image |
列表 | 页面的列表 | /libs/foundation/components/list /libs/foundation/components/mobilelist /libs/wcm/foundation/components/list |
社交媒体共享 | Facebook 和 Pinterest 共享构件 | - |
表单容器 | 响应式表单段落系统 | /libs/foundation/components/form/start /libs/foundation/components/form/end |
表单文本 | 文本输入字段 | /libs/foundation/components/form/text /libs/foundation/components/form/password |
表单选项 | 多选输入字段 | /libs/foundation/components/form/checkbox /libs/foundation/components/form/radio /libs/foundation/components/form/dropdown |
表单隐藏 | 隐藏的输入字段 | /libs/foundation/components/form/hidden |
表单按钮 | 提交或自定义按钮 | /libs/foundation/components/form/submit |
导航 | 列出嵌套页面层次结构的网站导航组件 | /libs/foundation/components/topnav /libs/foundation/components/mobiletopnav |
语言导航 | 列出全球语言结构的语言和国家/地区切换器 | - |
快速搜索 | 在下拉菜单中将结果显示为就地建议的搜索组件 | /libs/foundation/components/search |
Teaser | 允许内容作者轻松地创建 Teaser 以进一步让内容使用图像、标题或富文本,并将其链接到进一步的内容或其他操作 | - |
选项卡 | 允许内容作者在多个选项卡中整理页面内容 | - |
轮盘 | 允许内容作者将内容排列在旋转的幻灯片轮盘中 | /libs/foundation/components/carousel |
内容片段 | 允许显示内容片段 | - |
内容片段列表 | 允许显示内容片段列表 | - |
分隔符 | 分隔页面上的内容 | - |
折叠 | 在可隐藏的折叠中排列内容面板 | - |
容器 | 在容器中排列组件 | - |
按钮 | 在页面上创建按钮 | - |
下载 | 将可下载的资源添加到页面 | - |
体验片段 | 将体验片段添加到页面 | /libs/cq/experience-fragments/editor/components/experiencefragment |
嵌入 | 在页面中嵌入外部资源 | - |
进度条 | 提供向目标进展的可视化表示形式 | - |
PDF 查看器 | 在页面上呈现 PDF 文档 | - |
版本化组件的一个优点是,它允许将迁移到新 AEM 版本与迁移到新组件版本分隔开。此外,如果有新组件版本可用,它允许单独地将各个组件迁移到新版本。
迁移到新 AEM 版本不会影响核心组件的工作方式,前提是其版本也支持正在迁移到的新 AEM 版本。提供给核心组件使用的自定义项,只要不使用已经弃用或删除的 API,也不应受影响。
迁移到核心组件的新版本也不会影响组件的工作方式,但是可能会向页面作者引入新功能,在默认行为不符合需要时,可能需要模板编辑者进行一些配置。但是可能需要适应自定义项,有关详细信息,请参阅自定义核心组件页面。