Too many of the other frameworks which I looked at seemed to take a "my way or the highway” approach, requiring you to rewrite everything from scratch. You had to follow that framework's ideology and force you to subscribe to its own idiosyncrasies. If you needed to follow a slightly different path to achieve something this usually involved a lot of pain.
Angular’s “directives embedded in HTML” approach, in particular gave me cause for concern. From what I've read on various forums, the two way data binding that is one if Angular's big selling points seems to cause as many problems as it solves, especially when applications scale up.
Angular certainly has a lot of developers using it. How many of them still like it now is another question. Backwards compatibility does not seem to be one of its core strengths. I’ve seen the up-and-coming Angular.js 2.0 described as a "course change", a description that should send a shudder through any developer that's relying on it. How many of those developers are going to take kindly to rewriting their entire code base from scratch. I think many of them may just look elsewhere instead.
I believe Angular.JS is heading for a demise that’s going to be even more rapid that was its original rise.
React's best features:
1. Encourages component-based design based on composition. Practically mandates it, in fact.
2. Implements a one-way, top-down data flow.
3. Has a super fast diffing engine that minimises updates to the DOM (always a performance pain).
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C.A.R. Hoare