Vue vs Angular vs React. A 2018 Comparison

Image

I worked a lot with all three most popular frameworks: Vue, React, Angular 5 so my comparison is based on production experience.

React

Procs

  1. Is the most stable. API is being changed quite rarely.
  2. Has a lot of different packages and libraries for any taste.
  3. It’s the most popular framework now so when people are writing new libraries and services they are trying to make react implementation first
  4. If you want to learn framework to find the job it's a good choice
  5. Has the most stable universal implementation with a lot of examples in internet
  6. Plays good with flow

Cons

  1. It’s not a framework. It’s only the view layer. Which means you play lego trying to collect you own project.
  2. Plays so so with Typescript in comparison to Angular 5
  3. You can use create-react-app or next.js as a nice wrappers for project generations but this doesn’t scale to big projects. You start fighting wrappers and it’s easier to create your project from scratch

Vue

Procs

  1. Awesome documentation
  2. Nice framework architecture without useless additional entities
  3. Has router, official redux implementation and http service, which plays really well
  4. It's very easy to start writing in Vue
  5. You can migrate your non SPA project to Vue without any trouble
  6. Has universal implementation

Cons

  1. Lacks examples with Typescript and Flow. Few examples in internet and difficult to setup
  2. It's quite new framework so the amount of third party libraries and boilerplates is much smaller as for Angular or React
  3. Lacks complex examples with universal implementation with authentication, fetching, etc. in internet

Angular

Procs

  1. Plays awesome with Typescript because it’s used by default
  2. Has a lot of additional libraries
  3. All needed packages as http, router, animations are inside by default and are good supported

Cons

  1. Has a lot of not needed shitty abstractions
  2. Has own DI which goes additionally to es6 modules
  3. Few universal tutorials
  4. Bad documentation
  5. Forces you to use Rxjs, Typescript, etc

Conclusion

Of course framework is always a matter of taste. All 3 frameworks are really good for creating SPA. For frontend only scalable applications I prefer Vue. For universal applications React. Both without any additional wrappers like NextJs, create-react-app, etc.