Hacker News new | past | comments | ask | show | jobs | submit login

Disclaimer, Mithril core dev here. I'm not as familiar with Hyper.

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...




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: