
A curated list of things related to Vue.js - humility
https://github.com/vuejs/awesome-vue
======
roblabla
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.

1\. The API surface is fairly small, especially compared to Angular. I could
grok how it worked very fast.

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.

3\. The debug tools are _awesome_. EDIT: [https://github.com/vuejs/vue-
devtools](https://github.com/vuejs/vue-devtools)

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.

React, despite its problems, is nice because of exactly this : its data
binding is entirely non-magical. You have to go through setState _or_ force an
update. The mental model is dead simple. I wish I could like vue more...

[0] It is somewhat documented here:
[https://vuejs.org/v2/guide/instance.html#Data-and-
Methods](https://vuejs.org/v2/guide/instance.html#Data-and-Methods) among
other places

~~~
jbreckmckye
Why not just add your property with "vue.set()"?

I feel you could have avoided this "awful" pain by just reading a little
documentation.

I mean, how exactly did you think your new property would be picked up? I know
frameworks are supposed to abstract over things but you do still need _some_
idea what's happening under the hood.

~~~
fishtank
Vue.set is the way to go here, which used to be more prominent in the docs.
The section that called this out (along with other reactivity "gotchas") has
apparently been removed from the latest version.

Here's an archive link:
[http://web.archive.org/web/20170711045330/https://vuejs.org/...](http://web.archive.org/web/20170711045330/https://vuejs.org/v2/guide/reactivity.html#Change-
Detection-Caveats)

~~~
alevans4
They moved it. It's under List Rendering now in the guide. I have no idea why.
[https://vuejs.org/v2/guide/list.html#Object-Change-
Detection...](https://vuejs.org/v2/guide/list.html#Object-Change-Detection-
Caveats)

------
throw2016
Vue is relatively simple and the Vue docs themselves are comprehensive and
excellent.

There is a culture of complexity and some people thrive and perpetuate this
complexity for not always technical reasons.

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.

------
octaveguin
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.

In comparison to react, it's always been more intuitive.

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.

I hope there's some kind of solution. Especially when you start using vuex,
the data update inconsistency becomes a major issue.

~~~
mmcnl
Nested updates are always a problem, not just with Vue. Just avoid messing
with attributes below the first level of nesting.

------
hoodoof
Can someone explain the appeal of Vue over React?

~~~
sametmax
Vue doesn't force components or build tools on you. You can drop it as a 30ko
script in an html tag and put the template in the html file for small
projects, then go full webpack + components as it grows.

Managing state is very natural on small projects, but you can use the
official, well integrated store.

The doc is stellar. The api is simple, with no surprises, and riddle with
small helpers to make your life easier. As a result, reading the official
tutorial feels like a friend is talking to you.

Debugging and training are easy.

I do mostly react for my clients, but when i can choose, i always go for vue.

~~~
fishtank
As someone who uses Vue every day at work I would not say that Vue has a
simple API, though it has many conveniences.

I think a fair comparison would be to look at React's component API:
[https://facebook.github.io/react/docs/react-
component.html](https://facebook.github.io/react/docs/react-component.html)

And compare it with the Options / Lifecycle Hooks and Instance Properties and
Instance Methods sections of the Vue API docs:
[https://vuejs.org/v2/api/](https://vuejs.org/v2/api/)

Vue may be simpler if you have passing familiarity with Angular 1, or if you
are very familiar with Mustache-style templates. But I think it's wrong to say
the API is simple, or has a small surface.

~~~
sametmax
The naming all life cycle methods, the grouping of things by categories in
data, methods, all the things you don't need to learn to make jsx do what you
want, the whole props/callback things that is vastly simpler, no set state
shenanigan, no two ways with consequences of creating components, the use of
standard html attribute names and not js dom api names, etc.

That makes manipulating the api way simpler for me.

------
mmerlin
They could mention Weex

[https://weex.incubator.apache.org](https://weex.incubator.apache.org)

~~~
TobbenTM
You should submit a pull request! :)

------
simonlc
Is there an equivalent of this for React and Angular?

~~~
acemarke
There's an "awesome-react" list [0]. Also, I personally maintain a large list
of links to tutorials, articles, and resources for React and Redux [1], as
well as a list of Redux-related addons [2].

[0] [https://github.com/enaqx/awesome-react](https://github.com/enaqx/awesome-
react)

[1] [https://github.com/markerikson/react-redux-
links](https://github.com/markerikson/react-redux-links)

[2] [https://github.com/markerikson/redux-ecosystem-
links](https://github.com/markerikson/redux-ecosystem-links)

