There is no question. The answer is React. Angular requires you to learn a great number of framework features, whereas React does not, while still being far more powerful. If you're a web designer however, Vue is basically a far simpler Angular and it is very easy to understand if you understand HTML/CSS. So I personally consider Vue a fair option, but not Angular. Also note: I teach developers all day on codementor that want to use Angular and React (there's more Angular devs there). Angular is basically the old ways. Its as if Apple came to javascript and said let's make a Cocoa-like OOP framework. Meanwhile the rest of the world has realized how great functional programming is because of how much more predictable and testable it makes your code. Another way to put it is: the whole world has gotten smooth, whereas Angular is boxy and right angled. Whatever they really meant by "ang-u-lar" is not how I interpret it today. It's really sad that Angular 2.0 even exists and is trapping so many young developers when there are clearly far better options. If you use Angular you "learn angular" but you won't learn how to code. With React you can become generally a better coder quicker. The primary idea here is that with angular you have lots of magic which just works that you don't understand, but with React it's far easier to understand the "how" of what you're doing. I.e. how it works. If you don't know how something works, and you just learn syntax and commands (as you do with Angular) you progress as a coder more slowly. ..As for the idea that React isn't a framework and you have to suffer through figuring out what packages to use. It's not longer true. Here's the "stack" in place of your framework: Redux (M) React (V) Redux-First Router (C) For styles, settle on CSS modules directly using webpack loaders, or Glamorous or Styled Components. Learn some webpack + Express, and move on with your life. Here's a great boilerplate for you: https://github.com/faceyspacey/redux-first-router-boilerplate It's my Redux-First Router boilerplate. It has universal code splitting as well.