【发布时间】:2014-01-28 08:28:22
【问题描述】:
我无法理解 CQ5 中对 parbase 组件的需求。从我在 CQ5 文档中读到的内容来看,parbase 是一个可以从其他组件扩展的组件。但是所有组件都可以通过指定 sling:resourceSuperType 属性来扩展其他组件。那么对 parbase 组件有什么需求呢?
【问题讨论】:
标签: aem
我无法理解 CQ5 中对 parbase 组件的需求。从我在 CQ5 文档中读到的内容来看,parbase 是一个可以从其他组件扩展的组件。但是所有组件都可以通过指定 sling:resourceSuperType 属性来扩展其他组件。那么对 parbase 组件有什么需求呢?
【问题讨论】:
标签: aem
根据 Day 文档,“parbase 允许组件从其他组件继承属性”
如果您在 "/libs/foundation/components" 下进行检查,大多数可创作和可拖动组件都将 'parbase' 设置为它们的 'sling:resourceSuperType',以便它们在添加到段落系统(Parsys 组件)。
这是 CQ5 中所有开箱即用组件都遵循的标准。
在创建您自己的组件时,您不需要将“parbase”添加为超类型,除非您的组件需要通过 parsys 中的拖放来启用。
AFAIK,parbase 组件从不显式使用,仅在添加到 Parsys 时促进组件的呈现。
【讨论】:
parbase 或 parsys 组件,请期待地狱。由于其构造方式的性质,它们本质上是不可扩展的。
Parbase 只是一个组件,您可以从中扩展以获得一些 OOTB 功能。
如果我可以用技术语言说,Parbase 是一个关键组件,因为它允许组件从其他组件继承属性,类似于 Java 等面向对象语言中的子类。
例如,当您在 CRX Explorer 中打开 /libs/foundation/components/text 节点时,您会看到它有一个名为 sling:resourceSuperType 的属性,它引用了 parbase 组件。这里的 parbase 定义了树脚本来渲染图像、标题等,以便从这个 parbase 子类化的所有组件都可以使用这个脚本。
【讨论】: