<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.whatwg.org/index.php?action=history&amp;feed=atom&amp;title=Component_Model_Aspect-oriented_Components_Brainstorming</id>
	<title>Component Model Aspect-oriented Components Brainstorming - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.whatwg.org/index.php?action=history&amp;feed=atom&amp;title=Component_Model_Aspect-oriented_Components_Brainstorming"/>
	<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Component_Model_Aspect-oriented_Components_Brainstorming&amp;action=history"/>
	<updated>2026-04-15T10:16:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Component_Model_Aspect-oriented_Components_Brainstorming&amp;diff=7530&amp;oldid=prev</id>
		<title>Rolandsteiner: Initial stub</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Component_Model_Aspect-oriented_Components_Brainstorming&amp;diff=7530&amp;oldid=prev"/>
		<updated>2011-10-29T01:38:15Z</updated>

		<summary type="html">&lt;p&gt;Initial stub&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Example =&lt;br /&gt;
&lt;br /&gt;
component declaration:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;template name=&amp;quot;x-base&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;template name=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;content select=&amp;quot;X&amp;quot;&amp;gt;&amp;lt;/content&amp;gt;&lt;br /&gt;
      &amp;lt;/template&amp;gt;&lt;br /&gt;
      &amp;lt;template name=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;content select=&amp;quot;Y&amp;quot;&amp;gt;&amp;lt;/content&amp;gt;&lt;br /&gt;
      &amp;lt;/template&amp;gt;&lt;br /&gt;
      &amp;lt;template name=&amp;quot;bottom&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;content select=&amp;quot;Z&amp;quot;&amp;gt;&amp;lt;/content&amp;gt;&lt;br /&gt;
      &amp;lt;/template&amp;gt;&lt;br /&gt;
      &amp;lt;template&amp;gt; &amp;lt;!-- main template --&amp;gt;&lt;br /&gt;
          &amp;lt;use name=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;/use&amp;gt;&lt;br /&gt;
          &amp;lt;use name=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/use&amp;gt;&lt;br /&gt;
          &amp;lt;use name=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/use&amp;gt;&lt;br /&gt;
          &amp;lt;content select=&amp;quot;W&amp;quot;&amp;gt;&amp;lt;/content&amp;gt;        &lt;br /&gt;
      &amp;lt;/template&amp;gt;&lt;br /&gt;
    &amp;lt;/template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
derived component overriding main template. Pattern derived components will use most often.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;template name=&amp;quot;x-derived1&amp;quot; base=&amp;quot;x-base&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;template&amp;gt;&lt;br /&gt;
          &amp;lt;content select=&amp;quot;Z&amp;quot;&amp;gt;&amp;lt;/content&amp;gt;        &lt;br /&gt;
          &amp;lt;use name=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;/use&amp;gt;&lt;br /&gt;
          &amp;lt;use name=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/use&amp;gt;&lt;br /&gt;
          &amp;lt;use name=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/use&amp;gt;&lt;br /&gt;
      &amp;lt;/template&amp;gt;&lt;br /&gt;
  &amp;lt;/template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
derived component overriding a part template. All &amp;lt;use&amp;gt; elements referring to &amp;quot;top&amp;quot; in the finalized component will now render below structure instead. Pattern decorators will use most often&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;template name=&amp;quot;x-derived2&amp;quot; base=&amp;quot;x-base&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;template name=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;content select=&amp;quot;X&amp;quot;&amp;gt;&amp;lt;/content&amp;gt;&lt;br /&gt;
          &amp;lt;content select=&amp;quot;Z&amp;quot;&amp;gt;&amp;lt;/content&amp;gt;        &lt;br /&gt;
      &amp;lt;/template&amp;gt;&lt;br /&gt;
  &amp;lt;/template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
combination: derived component overriding main template and a part template, and adding a new template, all at once. Pattern derived components will use often.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;template name=&amp;quot;x-derived1&amp;quot; base=&amp;quot;x-base&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;template name=&amp;quot;bottom&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;amp;lt;hr&amp;amp;gt;&lt;br /&gt;
          &amp;lt;content select=&amp;quot;Z&amp;quot;&amp;gt;&amp;lt;/content&amp;gt;&lt;br /&gt;
      &amp;lt;/template&amp;gt;&lt;br /&gt;
      &amp;lt;template name=&amp;quot;left&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;content select=&amp;quot;Y&amp;quot;&amp;gt;&amp;lt;/content&amp;gt;&lt;br /&gt;
      &amp;lt;/template&amp;gt;&lt;br /&gt;
      &amp;lt;template&amp;gt;&lt;br /&gt;
          &amp;lt;use name=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;/use&amp;gt;&lt;br /&gt;
          &amp;lt;use name=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/use&amp;gt;&lt;br /&gt;
      &amp;lt;/template&amp;gt;&lt;br /&gt;
  &amp;lt;/template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Issues =&lt;br /&gt;
&lt;br /&gt;
* Splitting scripting among parts - how to &amp;quot;re-route&amp;quot; scripting to overriding parts? probably not possible -&amp;gt; rely on heavy messaging instead?&lt;br /&gt;
* Overriding parts again requires a certain knowledge of a components internals - at least which parts exist and what they do (then again, this is also the point)&lt;br /&gt;
* How to best apply &amp;amp; remove &amp;quot;decorators&amp;quot;?&lt;br /&gt;
* It&amp;#039;s not possible to extend a template or part (adding or wrapping the base part, but also rendering it) - it&amp;#039;s either leave the original or replace it completely. The ability to extend seems desirable in some cases, but would then re-raise the XBL inheritance questions. How to best reconcile this? (or ignore it?)&lt;br /&gt;
* In some sense all this creates a mother-of-all-flattened-trees&lt;br /&gt;
* Can this work if some parts are being isolated?&lt;/div&gt;</summary>
		<author><name>Rolandsteiner</name></author>
	</entry>
</feed>