Specifically, I used learning Vue as an opportunity to upgrade a simple jQuery-based SPA (with a PHP backend) to ES6, JS modules and Vue. It was a little hairy to bite off all of that stuff at once, but the Vue community was really helpful. In contrast to more monolithic frameworks I didn't have to port everything at once, and the re-implementation of the bits I did port are sooo much cleaner.
FWIW, there's a highly-rated Vue.js 2/Vuex Udemy course on sale for an impulse price of $14 (normally $190) as I type this. With the caveat that I just bought the course myself, at that price it seems like a useful resource even if you only have a cursory interest in Vue.
I think the docs are very good and more than enough not only just to get started, but also to keep you going.
The one thing that does still bug me these days is that even now that Vue 2.1 is out, many components I'd like to use are still not compatible with Vue 2.x, and almost all the Vue tutorials, questions, solutions, etc. I find are about Vue 1.x, which is mostly incompatible with Vue 2.x. But that should improve over time, of course.
I still consider myself a novice, I've only spent about 6 hours playing with it, but I'm already able to write my own components, communicate between them using events, set up data model for my app, binding the data model to bootstrap components in my templates, etc. Not bad for someone completely new to web development. Which says a lot more about Vue.js than about my own capabilities ;-)
One tip I can give you is to take a very good look at the Vue 1 to Vue 2 changes [2], and all the things that have been deprecated in Vue 2 (quite a lot). The big mistake I made was to mess around with examples written for Vue 1 and thinking there was some problem with the framework itself, while all of it was because I was using deprecated features (e.g. the event system has changed significantly).
What about the SEO and search engine rendering to custom HTML elements like in Vue.js components? is it okay or affects SEO?
That said, I do like the React model of creating components (and suspect this is why so many people use it when it's unnecessary). I'm looking forward to browsers implementing custom elements so that we can all compinentise this way without the overhead of a large JS framework.
edit: The polyfills are also very viable. I know sometimes people knock polyfills, but they're really just libraries that implement the component model and encapsulation that frameworks generally have to, but they go away over time.
We have multiple internal enterprise applications where both jQuery and Vue.js are available. More often than not, when there's a pull request, even for the simplest UI interaction, it can be refactored to few lines in Vue.js from the jQuery event and DOM mess. We plan to move away from jQuery in a year or so, and no new jQuery plugins are allowed.
Vue.js has also allowed us to iterate much faster on complex UI than it would be possible with jQuery.
For bigger apps, you can add components, and for even bigger - add Vuex. Vue.js (same as React) really is the new jQuery.
I am really interested in this approach but I fear about the SEO and any additional unnecessary complexities like compatibility with old browsers and OSs especially in Android.
It just so happens that the extensibility around React led to stuff like redux and react-router that's perfect for SPA's, but at its core it's just a View layer that could live alongside a traditional site.
There's a point, where using jQuery alone just won't cut it.
I guess a rule of thumb here would be: If you're providing a service that requires an account - you probably need something more than jQuery.
This assumes that you are using node.js as your backend though.
1. It drops out if it takes more than 5 seconds to complete its operation and uses whatever is render then.
2. Indexing with HTML happens in near-realtime. Indexing with JS to HTML is delayed by about 1-5 days depending on the popularity of the site.
So if you're serious about it; you ought to heavily include metadata for Google to index during the first run through or place a bare bones HTML copy down.
> Vue's implementation cleverly hijacks array methods, but it should be noted that Javascript Arrays cannot be truly subclassed and as such, Vue suffers from abstraction leaks.
Can anyone who knows how vue is implemented explain this statement?
Vue looks really appealing on the simplicity and completeness side.
I would like to know from people using Vue what backends you're using. In order to complete the loop - the simplest stack overall Vue+???.
react-rails does this really well, making JSX transformation a drop-in gem, vs. having to set up some kind of front end task runner of sorts and constantly having to commit compiled files and such.
Beyond that, Vue has been amazing, and I really love it.
The performance is compareable, but they went for templates instead of the "it's just JS"-philosophy of React. Reminds me of "the fear of turing complete templates"[0]
Also, they mention their bindings are similar to MobX. I had the feeling MobX was a step back in the React eco-system, if I think about what Facebook wanted to achieve with Flux.
But yes, overall it seems like a much simpler approach than React or Angular, not to mention Angluar 2, lol. But it seems to come at the cost of the points I mentioned, which were really a pain back in the days and got solved with Flux and JSX.
It also doesn't seem to solve some problems that React didn't solve, like realtime asynchronous data or fractal state.
[0] http://lhorie.github.io/mithril-blog/getting-over-a-fear-of-...
Also I wished it was clear if this doc was updated with Vjs2 or if it's 1.x or what. That's not clear anymore and they need to sort that out or the integrity is lost.. by accident, but still lost.
Nothing about how they said this was done in a manner that was boisterous, just simply leveraging what has been learned from first movers and now they are hoping to pull their own Apple, by making a better product as second (or third or fourth.....) movers in the market. ;)
If it's your opinion, as it is mine, that HTML frameworks should deal with HTML, instead of abstracting it away, then this isn't a bad thing.
I have created few tutorials on Vue.js.
https://m.youtube.com/playlist?list=PLJ6Y8JfXAV-8_2lHNgP1DhC...
I believe there was a way (probably a complicated hacky way) to achieve this previously too, but I never investigated it too much. Now it's really easy.
Kudos to the Vue team for this release!
I played with it a bit and what's awesome about it that you just write plain JS most of the time. No weird stuff like JSX and whatever. Docs arn't that great tho
Aurelia is a sort of the spiritual successor to Durandal.
There are a thousand factors why you'd chose one above the other. I would just be very wary of comments like: "Definitely framework X".
Just that as time goes on Angular 1 is going to fall out of support in general and for popular libraries so it might be best to switch sooner rather than later before we get more entrenched in Angular 1. Switching to another framework wouldn't be a massive undertaking right now but probably would be later. Typescript is a great feature too but you can use this in Angular 1 somewhat as well. Any thoughts?
Can you elaborate? I've used Angular 1 a lot, Angular 2 a little and Vue not at all. What makes Vue better?
Can't speak for Vue, but Angular 2 is pretty nice, and the performance benefits are significant. There are some complexities, mainly around AoT compilation, but those are challenges that one would come across if one wanted that anyway.
Before 2.0:
new Vue({ el: "#el", data: someData, events: { myevent: function(){} } });
after 2.0 :
vm.$on('myevent', function () {})
https://github.com/tastejs/todomvc/tree/master/examples
including vue.js riot.js react, meteor, angular 1,2 dojo, duel, ember, jquery ....
it's a great way to compare frameworks
I also really loved the Vue 1's way of handling transitions. Now having them inside it's own wrapper really diminishes the elegance I felt from Vue 1.
Wish there was some ways to get them back instead of having to downgrade.
Does this version have a routing guide and production ready routing solution? That's pretty important.
http://router.vuejs.org/en/ does appear to be fairly complete however. (linked from the README)