
Announcing Vue.js 2.0 - EvanYou
https://medium.com/the-vue-point/announcing-vue-js-2-0-8af1bde7ab9#.t4ssx4l9s
======
spriggan3
> Despite being a full rewrite, the API is largely compatible with 1.0 with
> the exception of some intentional deprecation.

This guy gets it.

~~~
edwinyzh
Yes, backward-compatibility is the key to keep a framework long-living. I was
trying to adopt Angular 1.x, but wait, the code I'm going to write will be
deprecated soon?

------
dimgl
Vue.js is amazing. I've been using it on one of my side projects and I've been
so productive with it that I can't see myself ever using anything else. It's
like a mix of React, Angular and Knockout all in one package.

~~~
endisukaj
Anything in particular you like about it? I'm trying to find a reason to learn
Vue, but I like React so damn much!

~~~
dsco
I love it since it somehow feels like a lighter and less opinionated version
of Angular. I could basically guess myself to how to use it, and there's
pretty few pitfalls/gotchas.

Also there's a Chrome Devtool for it and the debug mode is helpful.

------
aaronbrethorst
Congratulations on your launch, but I couldn't tell what Vue was from this
announcement post. I wish articles like this could include even just one
sentence at the beginning that looks like this:

    
    
        Vue.js is a library for building interactive web
        interfaces. It provides data-reactive components
        with a simple and flexible API.
    

(pulled from their GitHub README, which I was only able to find because of the
comment here on HN from cdnsteve fifteen minutes ago:
[https://news.ycombinator.com/item?id=11582600](https://news.ycombinator.com/item?id=11582600)).

Edit:

Thanks, Evan, for adding the explanatory bit at the top of the post.

~~~
jdnier
The main vue.js web site is here: [http://vuejs.org/](http://vuejs.org/)

~~~
klibertp
That's still one click too far. It wouldn't cost anything to add a single line
of text on top, while arguably persuading more newcomers to try and learn Vue.

Which is great, BTW, I used it in a couple of projects with LiveScript and it
was a pleasure. It doesn't assume much about your code and you can fit it in
any kind of architecture you happen to have. Good to see a progress here!

EDIT: wait, it's already there (the mention what Vue.js is) in the article:

> In case you’ve never heard of Vue.js before: Vue.js is a front-end framework
> that consists of a core view layer and accompanying tools & supporting
> libraries. You can read a high-level introduction to what makes it different
> here.

------
_kyran
Thanks for all of your work Evan :)

Vue was the first JS framework that made sense to me for projects that needed
more than online jQuery and not a full SPA app.

~~~
KurtMueller
I always thought React was a good one step above jQuery. What made you choose
Vue?

~~~
unculture
It's really easy to just pull Vue in via a script tag and get going with a
data driven application. No build step required. You can take it much much
further of course, but the beginner story is really compelling.

~~~
luisrudge
FYI, you can do that with react as well.

------
disease
I'm not an expert on either, but my understanding was that Vue's advantage
over React was that since it had no virtual DOM you were free to manipulate
the DOM more freely without running into trouble. Now that Vue has its own
virtual DOM it is harder for me to see the difference from React. Many of the
positives listed both here and on the Vue site could also be said about
Knockout, which I still am currently using at the moment (though I'm likely
moving to React soon).

~~~
EvanYou
Knockout's perf on large re-renders is below average:
[http://mathieuancelin.github.io/js-repaint-
perfs/knockout/](http://mathieuancelin.github.io/js-repaint-perfs/knockout/)
It also doesn't allow you to use programmatic render functions, nor does it
have server-side rendering.

Vue 2.0's vdom implementation is mutation resistant - as long as you don't
replace the element directly controlled by Vue (same as 1.0), the rendering
will not run into problems. If you are really concerned you can always create
a custom component that returns an empty element so that you can do arbitrary
manipulations inside.

~~~
nightski
That's exactly why I am switching away from Knockout. I loved every minute of
it, but there are features I simply can't deliver on because the perf is too
low. There are all sorts of hacks I could do to get around it but that is
really going to slow me down.

TBH It's not really the rendering that is slow in my experience. It's the fact
that every binding attaches an event handler to the DOM. This can take up to
10s for a reasonably sized grid in IE.

------
BafS
Amazing work ! I'm looking forward to test the server-side rendering. The
render/template possibility seem a bit confusing, can we mix both in one
component ?

~~~
doublerebel
I am impressed that they implemented auto-hydrating _streaming_ server-side
rendering. Is there any other package that does this as streams?

------
MattyRad
I am a huge fan of Vue (which at work, we pronounce "Voo" to not confuse views
as in "templates" or views as in "look of something"). Really appreciate all
the work Evan You has put into it, it's delightful to work with.

It would be awesome if the vue-router, vue-resource, and vuex libs could be
baked in somehow, if only to have them officially supported. All the same,
it's great as is!

~~~
jordanlev
Big fan of Vue myself as well. Based on interviews I've heard with Evan, it
sounds like his strategy for Vue is to intentionally keep those separate. I
think the idea is that Vue's "place in the world" compared to other js
frameworks is one that's easy to begin with but offers more complex tools for
more advanced requirements as they're needed -- but not complicating the
basic/simple/beginner use case with everything all at once.

------
cdnsteve
Hard to find in article:

Git source:
[https://github.com/vuejs/vue/tree/next/](https://github.com/vuejs/vue/tree/next/)

Examples:
[https://github.com/vuejs/vue/tree/next/examples](https://github.com/vuejs/vue/tree/next/examples)

------
pier25
Awesome work Evan!

I've been using Vue for a new project and it's a joy to use. It makes a lot
more sense to me than any of the alternatives.

------
czk
It's easy to pick up Vue and start hacking at it right away. I'm currently
using it for a production app right now (in development) after evaluating
other options, it's super productive. I'm excited for 2.0!

------
dabernathy89
As far as the API goes, looks like one of the big changes is dropping
vm.$dispatch and vm.$broadcast. I see a mention of a global event bus - are
there any examples of that somewhere?

~~~
elricpp
[https://github.com/vuejs/vue/wiki/2.0-features#how-to-
deal-w...](https://github.com/vuejs/vue/wiki/2.0-features#how-to-deal-with-
deprecation-of-dispatch-and-broadcast)

~~~
dabernathy89
That's a lot easier to reason about than broadcast and dispatch; I like the
change.

------
fuzzythinker
Riot is a very similar library, worth a look.

[http://riotjs.com/](http://riotjs.com/)

~~~
supercoder
VueJS is very similar to Riot, worth a look.

[http://vuejs.org](http://vuejs.org)

------
morhekil
does anyone write single-file Vue components in Emacs? If you do - how do you
configure it to have language-dependent things like flycheck and syntax
highlighting working correctly in different blocks of the component file?

------
DeadReckoning
What are the advantages of using this over react?

------
paulw0
Wonderful! Vue is my favorite

------
quay
Thanks for all of your work Evan :)

------
jinjiang
Great job!

------
ybstone
Awesome work!

------
ybstone
Awesome work

------
ioppoi
nice

------
kkeerr1010
damn good!!!

------
lovefishs
Great work! Thanks for all of your work!

------
GodHorse
原本想用angular2作为项目基础框架，阴差阳错用了vuejs，配合其他插件做spa，现在已经非常喜欢它了，更新到2.0这个里程碑，恭喜。

