I still don't understand why developers want this over something more simplistic like this: http://jsfiddle.net/quje39qa/1/ - Am I alone in thiking JS frameworks are not the future?
2. Build project from scratch with well structured JS.
3. Build another project, but first extract the generalizable bits from the first project into a module that solves common problems.
4. Open source this module because it could be useful for other people writing single page apps.
5. Go back to step 1?
This is something Ractive.js provides out of the box (child components fire events, that parent can be listening for), and what Flux (and its implementations) provide.