We were unable to load Disqus. If you are a moderator please see our troubleshooting guide.
Nice premise! And I really appreciate you taking the time to write about this. But I'd like to respectfully disagree with the conclusion of your article. The two features you have listed here are great! But certainly not even a tip of the iceberg for Vue features- what about declarative and conditional directives in rendering? Custom directives? Watchers for asychronous updates and transitioning state? Slots? The list goes on, happily.
Your premise is correct in some ways, in that its two large strengths are: that it combines useful features from other frameworks (conditional rendering and directives like angular, view-only layer like React), and also that it's SIMPLE.
People often falsely regard simplicity as less powerful, but that is not true. You can have just as many features, just as much power (if not more), and if you offer them in a clean, easy to reason about- just enough code- not too much way, you have something incredible. Engineering is as much about writing things in a clean, meaningful, and slim manner, as writing something complex. If you can do both, your code is more meaningful to other maintainers and will likely also have less bugs (see the statement you made about the lower amount of issues).
Again, thanks for taking the time to write about this. It's nice that people are thinking through some of the trends in the industry, trying to understand the "whys"
The list isn't confined to the 2 features in this article. The rest of the features are in the article on AppendTo.
And the purpose of this article was to compare Vue's features to the features that I know the other major frameworks have, which I actually have very limited knowledge about, so I'm lucky I could create a list of 6 things!
I'm sure Vue does have features, at least in the small scale that other frameworks do not have, but I'd have a hard time verifying they don't exist. I was trying to view things from a higher "altitude" and going down to a singular small feature like an individual directive was outside the "scope" of this article (besides, I'm pretty sure that Aurelia or Angular has most/all of these).
By the way, I totally agree with about the simplicity, but I believe that a lot of that simplicity is granted to us simply because Vue takes on all of that complexity on itself in the background. The fact that they've created such a simple-to-use API that still meets a huge number of use cases without needing workarounds is the real feat of engineering.
Thanks for reading and for your kind words. God bless and happy coding.
It's the little features I like so much about Vue. Like v-else and <component :is="componentName">. I'm not sure about Angular 2, but AngularJS is missing those features. On the other hand it's much, much simpler to bind VueX to Vue than Redux to React. I also love that it's encouraged to use a lot of vanilla JS like import and export. And it's open to the outside world. So you can use it to create public libraries.
There are just so many little things that make Vue much more enjoyable to work with.
Absolutely. I was trying to look at the more high-level features, which are generally well represented in the other frameworks. You're definitely right that Vue gets all of those little things right and that certainly makes it generally more enjoyable and productive to work with than other frameworks.
FWIW I think this is essentially a useless article. However, besides the VDOM and a CLI there are plenty more unique VueJS features. The biggest one for me is that you can get stuff done. UI's are generally messy and the way VueJS has made this accessible and practical is amazing.
Actually, come to think about it the focus in your article indicates that the kind of things that impress you most are things like the highest building in the world or the fastest car. Really what matters instead are all the useful buildings and cars we have to get in and out of in everyday life.
For myself having a flexible UI solution that does not take all my time to master so I can get on with the FP, RxJS and backend aspects of my app matters most. Integration is another feature for the record, its an incredible achievement to build a solution that allows for flexiblity and accomadates so many external APIs.
In my experience Angular and React were cobbled together and patched up shoeboxes compared to VueJS, which is one the best engineered and finely balanced works of art and technology yet. Just take a look at how the world rages on in whats been the hell of web development between 2011 and now. You sure do not hear any VueJS developers complain.
1) I know there are more features to list aside from VDOM and the CLI, that's what the article on AppendTo was about.
2) Being able to get stuff done isn't a feature, it's an effect of the features. I am impressed by the "highest buildings" and "fastest cars", but this is all about combing all of these best features in a way that creates the effect you're most impressed with: productivity. No one has any concrete data on the productivity of a Vue app vs anything else, so I can't state that it is better than the others in that regard.
3) The integration is definitely a great feature, though I'm not sure what to say Vue "stole" that from. The fact that Vue maintains their own libraries (Vuex and Vue-Router) and tries to make all of these work together gives it an advantage over something like React and Flux and React Router, etc. I think Ember does a pretty good job of this, but isn't quite as flexible.
4) I totally agree that Vue is one of the best engineered and finely balanced JavaScript libraries. They covered a lot of bases while remaining flexible and extremely easy to use.
5) I haven't heard a lot of complaining about Angular or React, but I have yet to hear a single complaint about Vue.
Thanks for your feedback!
Wonderful article. Indeed, VueJS is one of the best framework to work with. To speed up vue projects, Vue admin dashboard can be a helpful resource as well.