Expand description
The scene: turning an app’s markup into entities, and keeping them in step with its state.
This is the half of a Lumen app that has no host in it. It spawns the
element tree from the IR the compiler produced, reconciles the parts of
that tree that depend on state (<for> rows, <if> branches, dialogs),
instantiates fragments, and resolves navigation between pages. What it
never does is lay out, paint, or talk to an OS: that is the host’s half,
and it is why the same scene runs on a desktop window and in a browser
document.
Most of this registers nothing. A host adds the systems it wants, in the
order its own pipeline needs. The two exceptions install as a unit because
their internal order is not the host’s to choose:
routing::install_routing, whose resolver has to run before the
reconciler it drives, and dom::install_dom, whose applier has to run
after the collector that fills it.
Modules§
- compiler_
plugins - Injected compiler-plugin boundary.
- computed
- An element’s computed style: the components its resolved attributes become, built one way for spawning and for a restyle.
- dom
- The dynamic DOM: the tree a script reads, and the mutations it issues.
- fragments
- Fragments at run time: the app’s declared fragment set, the marker a fragment instance carries, and the argument binding an instantiation resolves its placeholders against.
- i18n
- Rebuilding what the tree says when the app changes locale.
- routing
- Navigating between the pages of one app.
- script_
commands - Applying the script commands that touch nothing but the scene.
- script_
host - The per-host half of the script wiring, installed once for each active
ScriptHost. - source_
parser - Injected source front-end - the markup + CSS parser boundary.
- spawn
LayoutIR::spawn_intowalks the IR tree and spawns entities into the main world.