Does more rendering than necessary and is still not perfect, as it won't preserve DOM state on model state changes. For example, consider <details> state (rolled up or not) - setElement won't keep it.<p>IHMO, somehow better (but more verbose) approach is to consider view as a FSM. Each state may render view's complete representation (using the template), while each transform (an edge of view's Moore machine) may transform DOM tree as necessary (i.e. just update necessary elements instead of re-rendering a whole subtree, if possible).<p>I belive, this could be automated (as DOM is, essentially, a tree, differences between states could be found algorithmically), but haven't really tried it that way.