So my personal preference is React, here is why.
First off, I think the react model is spot on for what it is supposed to be. Small dedicated components that could be replaced at any time. A "react stack" can be just about anything, there is no rule on what you should bring in. To me, this is a big win of react. Because react is tiny, you can update your application piecemeal. You don't have to upgrade the world to fix one bug, add a new feature, etc. Further, because react forces you down no specific architecture path, it is a lot easier to flexibly decide exactly how your page should be setup and what to depend on.
The react "do one thing well" motto has led to some good innovations (and makes it open to more cool stuff in the future). The original react+flux stack is now commonly react+redux, where redux was written by not facebook. This is the power of react. They chose a good place of where to draw lines on what does what (react is only doing the rendering). Which means that you can decide on which system best fits your data consuming needs. In the case of community adoption, people saw that the redux way was better than the original flux way and jump aboard. But who knows? Maybe redux will go away, time will tell. The important thing here is that your app doesn't care. You can flop out and switch out the data aggregating component on a whim without disrupting the rest of your application.
Compared with Angular, that is the huge win. With angular, you are a slave to the monlyth. The nice thing about Angular is it does almost everything for you. The bad thing about angular is it does almost everything for you. What that means is that you will be fighting, hard, if you ever want to step out of the angular way of doing things. Further, you are bound by what version of angular you pick up. Moving up versions is simply non-trivial. Large swaths of APIs that you or your subcomponents that you pulled in may be deprecated or removed. That is a maintenance nightmare. (Just look at how hard it is for people to go from Angular 1 to Angular 2). The people in the ruby on rails world have experienced similar sorts of heartache with new versions of rails.
Now, there are benefits to the way Angular does things. For starters, because it provides you with everything that means there is less to setup on your side of things. You don't have to hunt down the best date parsing library, there is already one in angular. Further, you don't have to feel shiftless in your design. You do it the angular way, there is no debate on what other way to attack a problem. And finally, while breaking api changes is a problem, the angular team has been pretty good about not doing that much. Further, for smaller apps it isn't really that likely that you will run into issue with it. The benefit here is that with angular, you get a lot of tools in one package that are tested and work together under the same version branch. That isn't so horrible.
However, I think that the larger the app you make, the more untenable the angular approach is. I think that react apps simply have a better long term maintenance story. For react, they just did a really good job at drawing the lines. So what if react decides to makes some big breaking changes? There just isn't enough to the library to really have lots of far reaching effects (So it is much easier to swallow). Further, react just has a better testing story. Getting angular setup for testing requires a good amount of work (and you are bound to the angular testing solution...) and from what I've seen, is often fairly brittle. With react, it is the opposite. React components are (supposed to be) really simple so testing is a breeze. Your components just don't do a lot or have things that they can modify or change. You can do bad things like that, but it is harder with react (and really discouraged).
To me, the biggest feature of react is that it has very few features. It separates concerns and gets out of your way. It very much appears to subscribe to the
clean architecture way of doing things, which IMO is the supperior method to do things if you want high maintainability.
That is just my 2 cents. Certainly you can do cool stuff with angular (and people have done a lot of cool stuff with it), the problem I have with it that all angular apps I've seen have some hard to overcome maintenance problems. Often, it seems like intent on these apps are fairly uncleared (controllers end up doing too much, models are ill defined, and the binding and scope is just a hot mess). Angular 2 fixes some of these problems by focusing on a more component based approach, but it remains to be seen if it has done a good job at fixing all of these problems.