Check out the Mithril example in the comments (http://jsfiddle.net/qQ59s/). I'm finding Mithril to be the most straight-forward, easiest to understand framework I've used. Note that Mithril does DOM diff'ing.
I've started using PJAX where the rendered page does not have to change when its source data does, and where you don't have large tables/calendars that would have to be re-rendered when one data value changes.
Development is significantly faster, less error-prone, easier to maintain. Development can also be given to people with lower skill levels.
I found 95% concentrations of DEET effective during multiple trips paddling in northern Canada. The alternative was to come back with inflamed skin easy an inch thick.
Buy the 05% DEET in the USA as Canada no longer allows concentrations over 30%.
I started my first job in 1974. My first project was to migrate apps running one of those 402 unit record machines (plus an attached adder/subtracter, plus a multiplier/divider/square-rooter) to IBM mainframes. There were a lot of those patch panels, one for each app. So my first step was to write a 402 patch panel emulator. ;) This freed up the floor space we needed to rewrite the apps properly. Quite a difference from nodejs and Angular SPAs.