We use cookies on our website, hope you don’t mind. Just imagine a plate of delicious meringues, they look like clouds. Read more

Development

Will Vue.js Become a Giant Like Angular or React?

Share this Article on:

Stay in touch. Subscribe to our Newsletter

Vue.js is a close partner of Angular and React in more and more article titles, taking the world by a storm. Over the last three months, Vue.js core repo GitHub stars have grown by more than 20 percent, while Angular and React had to settle for 14 percent and 10 percent respectively. What’s the magic behind Vue.js that makes it win developers’ hearts? Let’s find out!

As Vue.js was the first front-end framework I learned and fell in love with it, I kept asking myself the question whether or not it will be used as broadly as the previously mentioned giants: Angular and React. My small research in statistics showed quite interesting results:

Download statistics for vue-cli

Will Vue.js Become a Giant Like Angular or React?

Download statistics for package vuex

Will Vue.js Become a Giant Like Angular or React?

Download statistics for vue-router package

Will Vue.js Become a Giant Like Angular or React?

Download statistics for create-react-app package

Will Vue.js Become a Giant Like Angular or React?

Vue.js is not just another front-end framework. It is a very mature and well-thought-of component-based progressive framework for building user interfaces. Additionally, it is so simple and easy to understand, which gives it a massive advantage over the ‘rivals’. However, I’ve read many comments written by biased (what they say: developer 1, developer 2), users (yes, they mostly admitted it) that if it’s so simple, it’s probably unsuitable for bigger projects. But is any of that true? Let’s break down some key concepts and try to predict the future.

Why Is Vue.js So Popular?

Vue offers a number of features that attract developers:

  • It’s quick. Vue.js core team built a sample project that renders 10 000 list items 100 times. On average, Vue.js was almost 2 times faster than React (51ms vs. 94ms).
  • It’s reactive. Taking best features from React, Vue.js offers a VirtualDOM that watches for changes and re-renders only the parts that need to be re-rendered.
  • It’s well-documented. If you’re looking for a very detailed guide that should satisfy both beginners and experienced developers, this is your go-to framework.
  • It’s flexible and offers libraries. There are so many libraries for Vue, and the number is constantly growing. The most important of them are definitely Vuex for state management and vue-router for routing your app, both with very detailed documentation. As you can probably see, it’s another similarity that Vue shares with React. Bootstrap 4 has its own Vue library, there are a few libraries for Material Design components and hundreds of other interesting ones.
  • It uses DevTools. They are essential for debugging your application and seeing exactly what’s going on inside of it. Vue.js devtools for Chrome is a tribute to those who would like their debugging process to be excellent as far as UI and UX are concerned.

Will Vue.js Become a Giant Like Angular or React?

  • It utilises ES6 features, Webpack, and a reliable CLI project generator. Thanks to a good CLI (vue-cli), you can generate a project with a few keystrokes and use Webpack as your bundling tool.
  • It relies on a component-based approach. Vue allows for defining components in many ways. The most interesting one and the one that I consider to be the best for bigger projects is the single file component approach. You define HTML-like template, a script for logic, and style in a single file (allowing for simple style encapsulation and use of Sass). For those who have experience with Angular or React, it’s worth mentioning that Vue is also compatible with TypeScript and JSX after some adjustments.
  • It supports hot reloading. Plain and simple, makes the programming quick and enjoyable. I consider it a must nowadays. Hitting CMD + R or whatever else stopped being cool a long time ago.
  • Courses and tutorials. You can find a few good Vue.js courses on Udemy, which will guide you through almost every aspect of the framework, including the key libraries such as vuex and vue-router. Articles on Medium, for instance, also provide great examples of how to build web apps step by step.

There are also more complicated features such as Dependency Injection, Server Side Rendering or Unit Testing, but the ones mentioned above should give you some insight into the reasons for Vue.js’ popularity.

Who Uses Vue.js?

So you might ask a question whether there are companies that use Vue.js for real. To name a few: Facebook, Xiaomi, Alibaba (on some of its landing pages), WizzAir, EuroNews, Grammarly, Gitlab and Laracasts. It may not be astounding, but I’d bet that you know these brands.

Wait, did I just write Facebook? Check Facebook’s newsfeed. Built entirely using Vue. Yeah, I was surprised too!

Can Vue.js Hold Big Projects?

As I mentioned, some people don’t believe in Vue because they saw that it was simple and didn’t even try. The funny part is that they admit it, which makes my argument easier to prove. So far in my career, I have only done small and medium projects with Vue, but there are plenty of big projects out there apart from the ones mentioned above.

One user describes a project that used over 200 components, 50 mixins and 40 vuex store modules. He had no problems with adding new features, no structural or organizational issues.

The fact that the framework is big doesn’t automatically mean it works better for big projects. Vue.js scores a lot of points for its scaling ability.

Is Vue.js Really All Unicorns and Rainbows?

So far this article may seem to be written by a totally buoyant author with nothing but a ‘YES’ for Vue.js. Actually, there are a couple of things in which Vue is not a killer, and developers should be aware of them before choosing it for their projects:

  • Community size. So far there are still fewer resources and libraries for Vue than for Angular or React. All of them are constantly growing, but your questions on stack overflow or anywhere else will probably be answered more slowly than ones about the bigger frameworks.
  • It is less opinionated than Angular. There is a lot of place for freedom in coding with Vue, just like in React. Vue lets you choose the right way to do things, which sometimes may result in confusion or decision fatigue, which can lead to worse performance. You’d have to decide which approach you like more.
  • Switching to a new framework. There are fewer experts in this field and injecting Vue into new projects may be both money- and time-inefficient at first. Every groundbreaking decision has consequences like these. Keep in mind that one of the key assumptions of Vue are its simplicity and approachability while making the most of the features from Angular, React, and some other frameworks. This can make the switch a lot easier.

Jobs with Vue.js

Here comes the really difficult part where Vue doesn’t even see how far its competitors are. While researching jobs on LinkedIn and Indeed, I noticed that Angular and React are still total dominators, covering more than 80 percent of front-end job markets in many countries.

When you compare only Vue, Angular and React, the two latter cover more than 97 percent of the job market in most cases. That said, it is difficult to be absolutely certain about the outcome because looking only for ‘vue.js’ jobs has probably understated the results. Unfortunately ‘vue’ is an actual word used in some job offers in particular countries, which makes searching more difficult.

Most developers out there recommend a React- or Angular-first approach and then encourage to learn Vue.js as a side skill. The main reason for that is, of course, the low demand for it on the job market caused by the perception of difficulties and lack of purpose of switching to Vue in many companies. On the other hand, it’s possible that the market hasn’t yet discovered the potential of Vue.js, but there’s no such thing as a too broad skill set, right?

Wrapping Up

Okay, let’s get back to those Github stars. There should be a reason for it, right? My own opinion is that Vue.js is so enjoyable and easy to use that people click the star to show their support for the project. There are so many developers out there using Angular or React, but relatively few of them starred it on GitHub. Do they feel that they just must use it and don’t feel as comfortable as Vue.js developers? You’d have to ask them, I guess.

There is a duopoly on the market, and nobody can argue that. I argue, however, that Vue will eventually become Angular and React’s next big partner and therefore encourage you to try it yourself to get to know its features and potential problems it may cause. Bear in mind, though, that in the end, you should always use the right tool for the project.

As they say in the gym: ‘Life’s too short to be small’. You gotta work your way up’ or whatever. This should be the mantra of Vue.js core team and contributors.

Useful Links



Need a Vue.js developer? Get in touch with 10Clouds, we’d love to work together!

by Bartosz Bilejczyk, Front-end Developer
  • cheapsteak

    Hi, arrived here from Javascript Weekly’s newsletter 🙂

    I just want to clear up a potential misunderstanding and give some context regarding Facebook’s usage of Vue on Newsfeed.

    Newsfeed was a project that was contracted out by Facebook’s marketing department to a 3rd party vendor, it was not actually built by Facebook.

    I was working there (at the vendor) at the time, the reason the project’s team went with Vue was mainly because there was an in-house Vue expert, and no one had enough experience with React to know whether or not it would have been suitable for this kind of animation-intensive project.

    I doubt Facebook’s engineering department would have even known of this particular project. The site really shouldn’t be interpreted as an endorsement from Facebook

    • Well, to be devil’s advocate, it is an endorsement just not a direct one. You’d think a marketing department would want to only drink their own koolaid so the mis-management of that project shows as the endorsement. Also, kind of ballsy for the vendor to use a “competitor” regardless of the in-house vue expert. Maybe the vendor Facebook chose should have been a known react vendor…

      • cheapsteak

        Yeah, I guess you would think the marketing department of a $400B corporation would be all up on what open source libraries are and aren’t their own koolaid 😄

  • commenter

    Btw. speaking of great front-end frameworks: I am very happy with riot.js.

    • Antonino Porcino

      I was a huge fan of Riot, but it has certain shortcomings that made me prefer React over it.

      • commenter

        What kind of shortcomings?

        Btw. is there a similar tool like the riot.js compiler to write react components in the same html like format riot uses?

        • Antonino Porcino

          yes there’s a nice npm package called `react-templates`, you write html much like Riot and then they are compiled to plain javascript/react.

          As for Riot shortcomings, the one I hated most was: nested tags context’s always pointing to the inner tag instead of the outer tag. We used to call it parent.parent hell. I don’t know if they have solved it in Riot 3.

          • commenter

            😀 😀 no, it’s not solved in riot 3 but probably will be solved in riot 4. Actually, I wrote a patch which solved it for riot 2: https://github.com/riot/riot/pull/1973

            Sadly, the patch was not accepted at the time, because riot 3 was close to completion and it introduced a new attribute to the yield tag (API change).

          • Antonino Porcino

            back when I was contributing to the repo I had my patch/PR submitted too (https://github.com/riot/riot/issues/1415) but it wasn’t accepted. As I was already looking into React that hastened my switch decision, and I’ve never looked back ever since.

  • Antonino Porcino

    I still don’t get why one should prefer Vue over React. It’s not simpler in terms of API and the syntax is… ugly.

    • Yu Lu

      Could you explain why you think the syntax is ugly? I’ve seen people saying this quite often but no one really explains it.

      • Antonino Porcino

        For instance, I don’t like how JavaScript code is put into .vue template files, it should be the other way, e.g. putting template code into JavaScript sources. Also the “v-” prefix in template files makes it not very readable (in my opinion).

        • carc1n0gen

          As someone fond of Vue, I enjoy the separation of logic and presentation.

        • Vladimir Y

          You can keep all the sources in the separate files and just reference them in the *.vue file.

        • Neil Giarratana

          It feels just the opposite for me. My sense is that JSX is essentially the same concept as .vue sections. JSX syntax is HTML-esque but has some awkward points, e.g. “className” instead of “class” property). I don’t have any significant complaint with React, just prefer the look/feel of Vue.

          Can’t argue with you on the directives…not sure what the answer would be but they go lost in with the normal HTML attributes.

    • crueber

      Matter of taste. I think JSX is more ugly than .vue files. It’s all in what you prefer.

    • Dennis Hu

      Personally, I prefer the Vue syntax as it separates presentation and logic. However, if you insist on using jsx, you can easily do that in Vue as this post points out https://medium.com/js-dojo/whats-new-in-vue-js-2-0-beyond-templates-with-jsx-4b8cda05f95f.

      Apart from syntax and structure preference, I’d say the major advantage Vue has over React is two way binding. I enjoy Vue massively, since it has all the good things I liked about Angular and React without any of their baggage. My only concern is its lack of big corp support as this post pointed out. I really wish Google could pick it up and ditch the whole Angular thing, as it seems to me Angular vs React is just a losing battle.

    • Ng Heng Lim

      MIT license vs BSD 3-clause+Patents license

  • Paul

    vue.js 💪🏼

  • Thanks for your rundown on Vue, I enjoyed reading it. I would like to point out that the features of Vue that you mentioned are largely present in React too:

    – It’s quick (sure, React might be a little slower, but if you need that level of optimization your page is probably too bloated)
    – It’s reactive
    – It’s well-documented
    – It’s flexible and offers libraries
    – It uses DevTools
    – It utilises ES6 features, Webpack, and a reliable CLI project generator
    – It relies on a component-based approach
    – It supports hot reloading
    – Courses and tutorials

    On the other hand, community support, ecosystem, and maintainer support are way more important when deciding whether to use a framework or not, and that is where Vue pales in comparison at the moment. Hence I would think React is still the safer choice (at least for now).

  • Dan Wilson

    Ask an FYI: NativeScript is working through Vue.js support. This means those who prefer Vue will be able to write truly native mobile applications with Vue.
    Read more here: https://www.nativescript.org/blog/a-new-vue-for-nativescript and check the contest here: https://www.nativescript.org/blog/2017-sweetness-and-light-summer-app-contest

  • John Robie

    I personally really like Vue, and would choose Vue over React and Angular. I think JSX is ugly as sin, and Vue components are a little slice of heaven. However, in addition to the cons above, I can think of two major things holding Vue back:

    1. It regularly seems to be one step behind React (eg. Next/Nuxt). Not only that, but because of the community size, those shiny new tools evolve much faster in React than they do in Vue. Btw, where’s Weex!? Why go with the follower, when you can go with the leader? This is compounded by the other big-name companies innovating with React (eg. GitHub doing GraphQL demos with React/Relay, Airbnb making React/Sketch plugins, Zeit making Next, etc.).

    2. Vue’s internationalism actually hurts it. When I read through React community tutorials / documentation, it’s in colloquial / conversational English. When I read through the blog posts / tutorials / documentation for Vue’s community projects, it’s in broken English (if in English at all). The collaboration threads are less productive because of language barriers.

    Vue needs big Silicon Valley companies to publicly announce favoritism towards Vue, if it’s going to keep up with React. Unfortunately, I’m starting to feel like Vue is Betamax (slightly better), and React is VHS…

    • Vue is behind React because it was started a year later and was designed by one person compared to a team at Facebook.

      I disagree with Vue’s “internationalism”. It may hamper some communication, but it also shows inclusion and diversity and that is always much more of an advantage than some bad English.

      Scott

    • Bartek Bilejczyk

      Thank you John for your comment about Weex, it is an important thing that is being developed.

      I would agree with Scott on the timeline argument, it was started later and didn’t have such a support as React. As you can probably see from the article, I would love Vue to have a publicly announced support and agree fully with you on that. It would trigger trust, new opportunities, new jobs and it could diminish the problem of staying somehow behind.

    • Diana

      “Vue is Betamax (slightly better), and React is VHS”… that’s the best analogy I’ve read so far!

  • I always like to think of Vue as a pragmatic level of abstraction higher than React (because you can also do render functions with Vue too). Vue makes some decisions for you out of the box, which JSX is only the start of. You’ll be finding more and more abstractions coming out of the React world, where in Vue they have already been made.

    I’ll bet money on it.

    Scott

you may also like these posts

Why Test-Driven Development Is Like Surgery

How to Make More Time to Learn Programming. True Story

How Do You Fight Smog with Machine Learning? We Tried, and This Is What Happened

SUBSCRIBE TO OUR NEWSLETTER

Get the latest info about technology, design, product management (and some snaps from 10Clouds life) - subscribe to our newsletter.

Free project quote

Fill out the enquiry form and we'll get
back to you as soon as possible.


Thank you for your message!

We’ll get back to you in 24 hours.

Meanwhile take a look at our blog.

Read our blog
Gareth N. Genner Photograph

Gareth N. Genner

Co-Founder of Trust Stamp

Quote

We needed a partner who could take on our idea, and make it real. 10Clouds bring so many different skills. We feel that every member that’s involved in the project is a member of our team.