I worked a lot with all three most popular frameworks: Vue, React, Angular 5 so my comparison is based on production experience.
- Is the most stable. API is being changed quite rarely.
- Has a lot of different packages and libraries for any taste.
- It’s the most popular framework now so when people are writing new libraries and services they are trying to make react implementation first
- If you want to learn framework to find the job it's a good choice
- Has the most stable universal implementation with a lot of examples in internet
- Plays good with flow
- It’s not a framework. It’s only the view layer. Which means you play lego trying to collect you own project.
- Plays so so with Typescript in comparison to Angular 5
- 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
- Awesome documentation
- Nice framework architecture without useless additional entities
- Has router, official redux implementation and http service, which plays really well
- It's very easy to start writing in Vue
- You can migrate your non SPA project to Vue without any trouble
- Has universal implementation
- Lacks examples with Typescript and Flow. Few examples in internet and difficult to setup
- It's quite new framework so the amount of third party libraries and boilerplates is much smaller as for Angular or React
- Lacks complex examples with universal implementation with authentication, fetching, etc. in internet
- Plays awesome with Typescript because it’s used by default
- Has a lot of additional libraries
- All needed packages as http, router, animations are inside by default and are good supported
- Has a lot of not needed shitty abstractions
- Has own DI which goes additionally to es6 modules
- Few universal tutorials
- Bad documentation
- Forces you to use Rxjs, Typescript, etc
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.