58 comments

[ 3.5 ms ] story [ 112 ms ] thread
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.

Vue and Riot are the only 2 frameworks I use outside of work. I wish I could use either of these at my day job :(
How would you compare Riot to Vue?
I have a preference for riot over vie because the templating is much nicer.
Riot examples use reference to parent, which seems fragile to me, as your parent may easily change.
I always thought React was a good one step above jQuery. What made you choose Vue?
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.
FYI, you can do that with react as well.
(comment deleted)
(comment deleted)
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 ?
I am impressed that they implemented auto-hydrating streaming server-side rendering. Is there any other package that does this as streams?
> Despite being a full rewrite, the API is largely compatible with 1.0 with the exception of some intentional deprecation.

This guy gets it.

(comment deleted)
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?
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).

Edit:

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

The main vue.js web site is here: http://vuejs.org/
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.

(comment deleted)
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!

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.
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.
Anything in particular you like about it? I'm trying to find a reason to learn Vue, but I like React so damn much!
Super light weight as it focuses only on the model/view layers, the syntax is a breeze to learn, considerably faster than Angular in tests, and no dirty checking! I was looking for something lightweight, and unopinionated. Found VueJS, and I've used it for the past four projects.

https://vuejs.org/guide/comparison.html

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.

if you like react, then, imo, you should stick with react.

What i find best about vue is that lack of boilerplate and jsx. Vue's scoped css + css preprocessor+ auto-prefix combo is a huge step toward modular css. I am certain that other libraries and framework will copy it soon enough.

Agree, it's absolutely my go-to whenever building anything one-page-ish that doesn't need a full framework.
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?
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).
Oh, it has proper Virtual DOM now? I'll have to check it out. We've been using React for a Web app that needs to render and completely re-render (new columns etc.) lots of data - no hot updates - Vue was frustratingly slow (5-10 seconds), to the point where we initially had to use an isolated vdom solution (Snabbdom) that became messy fast. React is amazing, so not sure if we'll end up going back to Vue for anything data-driven (tabular).
Vue 2.0's vdom is actually forked from snabbdom ;)

In particular if you don't need hot updates, adding Object.freeze() to your data will make the rendering 2x faster than React.

Knockout's perf on large re-renders is below average: 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.

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.

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.

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!
Now,vuejs not only just the framework, in my opinion it is already a very complete solution
原本想用angular2作为项目基础框架,阴差阳错用了vuejs,配合其他插件做spa,现在已经非常喜欢它了,更新到2.0这个里程碑,恭喜。
(comment deleted)
Great work! Thanks for all of your work!
What are the advantages of using this over react?
Thanks for all of your work Evan :)