While it shares some similarities with Angular 1 semantically, Vue.js is at its core extremely different. The framework is very light and entirely component based, meaning that the concept of DOM elements as directives and controllers goes away. It also does away with dirty checking so you can use Object.defineProperty to set up read-only array values, something that was causing us to run into infinite digest loops in Angular.
There are lots of other differences but in general, the transition from Angular 1 to Vue.js was relatively painless. There's a small learning curve when getting used to the data-binding through getters and setters but once it clicks it's smooth sailing. Hope this has been helpful.
I don't understand why no-one wants to admit this so maybe I'm wrong but yes, I would say that's 100% true. Vue.js feels like a cleaner and slimmer version of Angular 1.
Another bit that rubbed me the wrong way about A2 is all the uber-magical stuff going on and all the pitfalls it created. Trying to understand why you need to put an @Input() on targets but not sources and what the actual consequences of that are took me way longer than I care to admit.
It's the simplest framework I've found to use in the same style as react (databinding, modules, etc) while still allowing you to use the html/css you've probably already written.
This really shines when you want to do something not quite single page appy in your, for instance, bootstrap based site. E.g. a complex web form with some interactivity (autocomplete, add/remove rows, one element affecting another element). This is complex enough to make it a pain to use jquery, but small enough not to want to rewrite the html in a react-compatible way.
That use case seems to be the majority case for me which makes Vue my primary tool these days for web front end.
Good stuff!
btw, my 1st VueJS website that my webagency launched 1 month ago: http://lamegapromodesgrandesmarques.com
How is that in the same style of React? To me, Vue feels like a cleaner version of Angular and very little like React.
React...databinding? huh?
There doesn't seem to be much point asking for suggestions either, as everyone has a different opinion on what's best.
After that you can basically try anything, but at least you will know pretty much everything about what modern JS has to offer!
I would recommend starting with create react app [1]. I think it can be used with other libs than react as well, the thing is just a strong webpack + eslint preconfiguration so you don't have to worry about it.
If I had a recommendation, it would be to just stick to one for a little while, and then once you're comfortable, branch out and try to 'optimize your opinion'.
edit: and I wouldn't recommend any specific one. If it's the first one you ever learn, and aren't building any serious projects with it, honestly choose whatever the hell you want.
The only real complain that I have about the framework itself is about components. IMO they are the wrong abstraction (they smell suspiciously like objects ) and with their custom .vue extensions, are a pain to work with in my text editor.
With that said, after working on a fairly complex Vue app, I won't be writing any Vue apps again. The reason has nothing to do with the framework itself: although it mostly tries to do the right thing, JS just pushes you in the opposite direction every time.
2) Elm | ClojureScript for complex apps.
Edit: To be clear, I've done large apps in Angular (which nearly made me regret choosing programming as a profession), React, Backbone and custom frameworks, and Vue.js wins by a large margin if you're stuck with JS.
It's a feature-rich framework based on React for building complex web apps.
Disclaimer: I'm the author.
Angular has TS and React has Flow, but most of Vue projects seem to use neither. This is fine for small side-projects, but I'm wondering if anyone could share experience building large Vue apps without types.
This is a brier reactivity explanations https://vuejs.org/guide/reactivity.html So there is no magic, nor the digest cycles (no dirty checking), just and old fashion get/set (plus some useful stuff for the predefined object properties) and it's fine.
But I fear that the world is too small for 3 front end frameworks, specially when the other 2 are sponsored by Facebook and Google.
Do you think Vue.js has a chance? I hope it does
My philosophy is you move ahead by choosing the best product and currently imho Vue is best. But then again having tasted the freedom of being an entrepreneur I couldn't ever work again in the big company environment.
Do we just throw away everything after a few months? At the time I couldn't find good components or make the entire thing compatible (it's the little bugs that get you), including "basic" stuff like a calendar with date and time, all the bootstrap components, select2. Not to mention proper i18n support. Oh, and it needs to work in every browser (at least the modern ones).
If Vue really is a react/angular for toddlers (like me), I hope it wins and that soon there's finally a component set that "just works" and doesn't get rewritten every cycle. I'm talking about components that go beyond the 80% use case. That you can install without thinking twice. That you don't have to worry if it's going to be abandoned next week.
Nope. It's just web technologies without reinventing anything you don't want to, which is why Vue's motto is "The progressive JavaScript framework", it's got nothing to do with politics :)
If you want componentization of some library you're gonna have to download the bindings, but if not, it's just HTML and you can roll just like you would without any framework. To make an example, I like using Material Design Lite for some cookie-cutter interfaces, and with Vue I simply used it in my templates like I always do. Then I found out about vue-mdl and it helps me cut down on the amount of HTML attributes and such making the thing more readable, so I npm installed it and started replacing things when I touched them and felt like it. But both ways of doing things live together and every bit of it was optional.
(edit: typo)
The template generates source maps.
It's incredible how easy it has become to make a new web app that has everything you need (registration, authentication, api, JWT, notifications,...) with just one command line (laravel new project). It's a huge jumpstart that allows you to focus on what's really important and forget about all the annoying boilerplate.
And since Vue.js is so well integrated with Laravel, you get all the benefits of the back-end also on the front-end. With all the authentication and API with JWT (and much more) ready to go, it becomes also a great way for newcomers to learn using Vue and play around with it.
These are 2 great videos of Evan You (creator of Vue.js) from Laracon 2016 https://streamacon.com/video/laracon-us/evan-you-vuejs-works... https://streamacon.com/video/laracon-us/evan-you-vue-router-...
When we were deciding between a few other frameworks, the choice was very easy.
I haven't touched Angular or React or Ember, mostly because of a distaste for Javascript, but also because I/my clients had no need for all the complexity it adds and the little business value it brings. Turbolinks is just fine for me/us/them.
But I have played with Vue. I spent a weekend hacking something together and it lives in production today. I'm so incredibly impressed by the library it almost makes me want to play with it more.
Very nice. Personally, I've been waiting for the vue-cli bit before even thinking about touching 2.0 since I try to avoid trying to build my own JS toolset.
But take a look at the docs and the replies on Github issues for the other distinguishing feature - the give-a-sh*t-factor from Evan and the crew shines bright. Just about everything is understandable, purposeful and clear.
What I love about it is that you can mostly intuit what to do to get something to work. It just feels very natural.
And the documentation is top notch.
I haven't ported to Vue 2.0 yet but I suspect the only issues I'll have will be with third party components built with Vue 1.0