In Mithril:
The hyperscript function supports Emmet/Zencoding syntax: `m('input.myClass#myId[type=radio]')`
There's a stream library for state management (not an out of the box solution, but a robust building block).
The Mithril router
- supports `path`, `search` and `hash` modes
- supports asynchronous resolution (for lazy module loading)
- parses the current route at mount time and launches the app at that route if possible
The renderer
- has lifecycle hooks (that fire when nodes are created, updated, and removed, before and after the DOM is mutated),
- supports fragments (components can return arrays) and raw HTML nodes (the former with keys support).
- optimizes keyed diff for insertion/deletion of contiguous nodes
- AFAICT Mithril handles the attribute/property dichotomy better
Mithril also comes with a querystring parser and builder.
There are probably a lot of other small things that I didn't notice (and there may as well be errors in my assessment of hyperapp)
Edit: I take back what I said about forms. Either Chrome got their act together or hyperapp is doing something that I don't understand yet... Anyway, the naive app works well: https://flems.io/#0=N4IgTgpgZpDOAWAhArgF1QewHYgFxQEMAbWCAGhF...
In Mithril:
The hyperscript function supports Emmet/Zencoding syntax: `m('input.myClass#myId[type=radio]')`
There's a stream library for state management (not an out of the box solution, but a robust building block).
The Mithril router
- supports `path`, `search` and `hash` modes
- supports asynchronous resolution (for lazy module loading)
- parses the current route at mount time and launches the app at that route if possible
The renderer
- has lifecycle hooks (that fire when nodes are created, updated, and removed, before and after the DOM is mutated),
- supports fragments (components can return arrays) and raw HTML nodes (the former with keys support).
- optimizes keyed diff for insertion/deletion of contiguous nodes
- AFAICT Mithril handles the attribute/property dichotomy better
Mithril also comes with a querystring parser and builder.
There are probably a lot of other small things that I didn't notice (and there may as well be errors in my assessment of hyperapp)
Edit: I take back what I said about forms. Either Chrome got their act together or hyperapp is doing something that I don't understand yet... Anyway, the naive app works well: https://flems.io/#0=N4IgTgpgZpDOAWAhArgF1QewHYgFxQEMAbWCAGhF...