Before we start- SPA or not?
First, you have to make a clear decision about whether you need a one-page web application (SPA), or you would prefer a multi-page approach.
Life cycle and Strategic Considerations
A bit of history
Vue is one of the fastest growing JS frameworks since 2016. Vue describes itself as “Intuitive, Fast, and Integrated MVVM for creating interactive interfaces.” It was first released in February 2014 by Google’s former employee Evan Yu (by the way, Evan then wrote an interesting post about marketing activities and numbers in the first week after launch). It was a success, especially considering that Vue attracted so much attention being a one-person show, without the support of a large company.
Both React and Angular are supported and used by big businesses. Facebook, Google and Instagram use react and angular. You would not be surprised to know that Angular and Dart were used by Google for implementation of its new Adwords user interface. Again, Vue is being developed by a group of individuals whose work is supported through Patreon and other sponsorship tools. Both React and Angular are growing and are being used by technology giants, now you need to decide for yourself, whether or not to use them for your business.
The life cycle in the market
Angular, React, and Vue are difficult to compare in Google Trends due to their diverse names and versions. One way to get approximate values can be a search in the category “Internet & technologies.” Well. Vue until 2014 did not exists. La Vue in French means “look,” “view”, or “opinion”. Maybe that’s the point. Comparing “VueJS” with “Angular” or “React” is unfair, as VueJS has almost no results that can be compared with these two.
Long-term support and migration
React’s API is relatively stable, as Facebook claims in its design principles. There are also scripts to help migrate from your current API to a new one: try react-codemod. Migrations are fairly simple, and there is no such thing (and need for it) like the LTS version.
As for Angular, there is a post about versioning and Angular releases since v2 release. There will be one major update every six months and a period of obsolescence (deprecation period), at least six months (two major releases). There are experimental APIs that are marked in the documentation with a shorter period of obsolescence.
The upgrade process from Vue 1.x to 2.0 should be simple for a small application — the development team claims that 90% of the API remains unchanged. There is an excellent tool for diagnosing updates and help during migration, working from the console. One of the developers noted that the upgrade from v1 to v2 still does not bring much pleasure on large applications. Unfortunately, the roadmap for the next major release or information about plans to create LTS versions is not available.
One more thing: Angular is a one-piece framework offering a bunch of things in a set. React is more flexible than Angular, and you are likely to come across more independent, untapped, fast-developing libraries — this means that you will have to take care of updates and migrations yourself. It can be harmful if specific packages are no longer supported or if some other package becomes de facto standard at some point.
Choose a framework now
React, and Angular and Vue are steep enough, and none of them can be put much higher than the others. Trust your gut.
What should I choose?
1. Work at Google: Angular
2. Like TypeScript: Angular (or React)
3. Need guidance, structure and helping hand: Angular
4. Work on Facebook: React
5. Like flexibility: React
6. Like large ecosystems: React
7. Like to choose from dozens of packages: React
9. Like really clean code: Vue
10. Want the simplest learning curve: Vue
11. Want the most lightweight framework: Vue
12. Want a division of responsibility within a single file: Vue
13. Work alone or in a small team: Vue (or React)
14. Application tends to grow: Angular (or React)
15. Want to have a large pool of developers: Angular or React
16. Work with designers, and you need pure HTML files: Angular or Vue
17. Like Vue, but the limited ecosystem scares: React
18. Can’t decide, learn React first, then Vue , then Angular.
Stay tuned for more!