active => passive
emitter <- reactive
Time flows from left to right.
Arrows point from dependent to dependency.
Active "thing" requires passive "thing" and invokes it's behavior.
Reactive "thing" requires emitter "thing" and subscribes to it's events.
Manual DOM mutations
DOM <- EventHandler => DOM
DOM <- View => Model <- View => DOM
Automatic DOM mutations
[DOM <-] View (handlers) => ViewModel <- View (bindings) [=> DOM]
With Model
[DOM <-] View (handlers) => ViewModel <- Model <- ViewModel <- View (bindings) [=> DOM]
TODO
Virtual DOM
[DOM <-] Component (handler) => Component (state) <- Component (VDOM) [=> DOM]
[DOM <-] Component (handler) => Action => Dispatcher <- Store <- Store (agg.) <- Component (VDOM) [=> DOM]
Also includes React scheme.
agg.
means aggregate
[DOM <-] Component (handler) => Action <- Store <- Store (agg.) <- Component (VDOM) [=> DOM]
Also includes React scheme.
agg.
means aggregate
Including React scheme...
[DOM <-] Component (handler) => Action => State <- Facets <- Component (VDOM) [=> DOM]
Basic
[DOM <-] Computer (VDOM) [=> DOM]
Advanced
[DOM <-] Intent <- Model <- View (VDOM) [=> DOM]
reactive-polyglot – FRP libraries / langs compared