- no need to diff the whole DOM tree
- no need to write JSX, you can simply use DOM nodes
the render() method still gives you most of the niceties of React, ie a declarative view of your DOM, without the nasty inclusion of HTML inside your JS controllers.
PS ToDoMVC performance benchmark shows the to-do app to be about 3-4x faster than React.
Moreover it gives you the option between declaratively specifying the DOM to imperatively manipulating it when you need to for performance reasons.
It's a tiny library and the approach is much more efficient than diffing the virtual DOM for the entire page, so I'm pretty confident that results would actually be even better in larger apps.
I prefer to do this:
render: function() { return { view: { classList: { editing: this.model.editing, completed: this.model.done } } } }
Compared to outputting the entire HTML for the component in render().