I recently tried out vue.js on a projet as a replacement to d3's selection/data-binding magic. I have to say, I've been impressed.<p>1. The API surface is fairly small, especially compared to Angular. I could grok how it worked very fast.<p>2. The fact that it works without build tools is a godsend. My project is fairly small, and having as fast an iteration cycle is really nice.<p>3. The debug tools are <i>awesome</i>. EDIT: <a href="https://github.com/vuejs/vue-devtools" rel="nofollow">https://github.com/vuejs/vue-devtools</a><p>However, I do have a BIG problem: the fact that mutating the data automatically does a rerender is a nice idea, but in practice it falls apart very quickly and leads to fairly hard-to-debug bugs. For instance, if I add a new field to an object, it will not be detected as a change by Vue and not cause a rerender[0]. In my case, it broke the magic and caused me to look into how the heck did vue actually work - only to find out I had to call this.$forceUpdate() in a few places. It's terrible.<p>React, despite its problems, is nice because of exactly this : its data binding is entirely non-magical. You have to go through setState <i>or</i> force an update. The mental model is dead simple. I wish I could like vue more...<p>[0] It is somewhat documented here: <a href="https://vuejs.org/v2/guide/instance.html#Data-and-Methods" rel="nofollow">https://vuejs.org/v2/guide/instance.html#Data-and-Methods</a> among other places
Vue is relatively simple and the Vue docs themselves are comprehensive and excellent.<p>There is a culture of complexity and some people thrive and perpetuate this complexity for not always technical reasons.<p>Vue completely avoids and sidesteps this and its best to start with the original site and docs or you might find yourself sucked once more into this gratuitous complexity.
I've been using Vue for about a year now. It's been my lib of choice for rapid front end development. Quasar Framework with it is especially a productive combination.<p>In comparison to react, it's always been more intuitive.<p>That said, I recently started working with a developer new to vue coming from react. Explaining how nested data updates doesn't really work made me realize how janky it is.<p>I hope there's some kind of solution. Especially when you start using vuex, the data update inconsistency becomes a major issue.