Element

The Element model represents the DOM tree. Element alone cannot render a view because we don't know what type of HTML element to render for each node.

An Element could choose what to render using either of the following:

Element.componentRenderType

This is basically a reference to a custom Component, so this Element will render that component.

Element.atomRenderType

This is basically a reference to an Atom, so this Element will render that atom.

Atom

An Atom is a predefined component type to be rendered, it could be an HTML tag or a UI framework component. The main part is that this is hardcoded in our codebase and can't change.

Component

Just like a Page holds a tree of Element, a Component holds a tree of Element as well.