@Tomarnst, very interesting and valid approach. Thanks for sharing.
I see in this sample how you "cache" data in an array with vue and then use this data here and there.
Vue.js in this case comes in action after the page has been delivered to the client's browser. Vue scripted language used in HTML elements in attributes simply instructs main vue-script to clone certain elements in DOM.
Good thing, this is flexible and allows to display complex layouts where same certain editables are repeated on the page and it would be not wise to run <cms:pages > tag again and again. May be useful for very heavy templates with tons of editables, where each cms:pages call takes much time, so the less number of them the better. I think I met such kind of application only once and used <cms:capture> tag, and <cms:set > tag to cache some data for repeating it in other places.
Couch-driven approach has less impact on browser "draw" times, because all layout get generated on server-side before page gets sent to browser. I read that DOM operations, where elements may be repainted with JS, are not much welcomed by users after page gets delivered. This way I leave only whatever is required to be JS-managed, doing the core page-generation on server, which is very fast.
My opinion is very positive about your approach, it is something very interesting and inspiring. Maybe you could share more samples of vue-apps with couch? I think we'd think about it.