Binding and templating internals
Deep dive into Aurelia's binding system, template compilation pipeline, and rendering architecture for framework contributors and advanced plugin authors.
Audience
Architecture Overview
┌─────────────────┐
│ Template HTML │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Template Parser │ (HTMLParser)
└────────┬────────┘
│
▼
┌─────────────────┐
│ Compilation │ (TemplateCompiler)
│ - Parse │
│ - Analyze │
│ - Generate │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Instructions │ (Binding, Listener, etc.)
└────────┬────────┘
│
▼
┌─────────────────┐
│ Rendering │ (Renderer)
└────────┬────────┘
│
▼
┌─────────────────┐
│ Live Bindings │ (Binding, Listener, etc.)
│ + Observers │
└─────────────────┘Part 1: Template Compilation
Phase 1: HTML Parsing
Phase 2: Template Compilation
Phase 3: Instruction Generation
Part 2: Expression Parsing
Expression Parser
Expression Types
Binding Modes
Part 3: Rendering & Hydration
Renderer
Binding Lifecycle
Part 4: Observation System
Observer Types
PropertyObserver (Plain Objects)
SetterObserver (Dirty Checking)
ArrayObserver
ObserverLocator
Part 5: Change Detection & Scheduling
Observation Strategies
Proxy-Based (Default)
Getter/Setter-Based
Part 6: Performance Characteristics
Binding Costs
Binding Type
Compile Time
Runtime Setup
Per-Update Cost
Observation Costs
Strategy
Memory
CPU (Setup)
CPU (Update)
Part 7: Debugging Techniques
Enable Debug Mode
Inspect Bindings
Trace Observations
Profile Bindings
Part 8: Plugin Development
Custom Binding Command
Custom Observer
Resources
Contributing
Last updated
Was this helpful?