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.
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 ?
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.
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.
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.
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.
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.
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 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.
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!
58 comments
[ 3.5 ms ] story [ 112 ms ] threadVue was the first JS framework that made sense to me for projects that needed more than online jQuery and not a full SPA app.
Git source: https://github.com/vuejs/vue/tree/next/
Examples: https://github.com/vuejs/vue/tree/next/examples
This guy gets it.
Edit:
Thanks, Evan, for adding the explanatory bit at the top of the post.
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.
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!
https://vuejs.org/guide/comparison.html
Also there's a Chrome Devtool for it and the debug mode is helpful.
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.
In particular if you don't need hot updates, adding Object.freeze() to your data will make the rendering 2x faster than React.
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.
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.
http://riotjs.com/
http://vuejs.org
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.