Table of Contents Previous Section

Subcomponents and Component References

A "node" in a template's object graph can represent a subcomponent (also called "reusable component") as well as a dynamic or static HTML element. A dynamic element called a component reference represents all occurrences of the subcomponent in the parent component. At run time, the component reference binds itself to the separate instances.

A subcomponent can fire actions against its parent component (using performParentAction:) and, if the parent's state changes, it's state is synchronized accordingly. In other words, its state is updated to reflected changes based upon its bindings with the parent.

An element ID is assigned to each instance of a subcomponent. When the chain of request-handling messages goes down an object graph and reaches the component reference, it resolves references to its instances based on the element ID of each instance. Components keep track of all their subcomponents by storing them in an internal dictionary using element IDs as keys.



Figure 7: An Object Graph for a Page With a Subcomponent