Skip to content

Instantly share code, notes, and snippets.

@dexteryy
Last active August 29, 2015 14:01
Show Gist options
  • Save dexteryy/b09597d8ccc4f8d70241 to your computer and use it in GitHub Desktop.
Save dexteryy/b09597d8ccc4f8d70241 to your computer and use it in GitHub Desktop.
MVC with a unidirectional data flow

Flux + React:

Views ---> (actions) ----> Dispatcher ---> (registered callback) ---> Stores -------+
Ʌ                                                                                   |
|                                                                                   V
+-- (Controller-Views "change" event handlers) ---- (Stores emit "change" events) --+

NervJS + DarkDOM + Templating or Virtual-DOM (React-like):

DarkDOM Components ---> (DarkDOM forwarding or SovietJS delegate) ---> Controller (app.js) ---> Models (NervJS Object) ---+
Ʌ                                                                                                                         |
| <--- renders (Templating or Virtual-DOM)                                                                                |
|                                                                                                                         v
+------- (modify or regenerate DarkDOM Configures) <-------- (Models emit "new/update/delete" and "change" events) <------+

NervJS + ? (UI library):

DOM ---> (SovietJS delegate) ---> Controller (app.js) ---> Models (NervJS Object) ---+
Ʌ                                                                                    |
|                                                                                    V
+--- View Components <--- (Models emit "new/update/delete" and "change" events) <----+

NervJS + View Controller:

DOM ---> (SovietJS delegate) ---> View Controller (view.js) ---> Bus (EventMaster Object) ---> Controller (app.js) ---+
Ʌ                                        |   ^                                                                        |
|                                        V   |                                                                        V
+-------- View Components <--------------+   +------ (NervJS emit "change" events) <------ Model (NervJS Object) -----+
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment