Angularjs components? (Software engineering question)

My team is responsible for web and mobile customer facing applications. We use a single Java code base and deploy ~20 different applications based on it. It is getting a bit long in the tooth and we are looking at redesigning it from the ground up. Some goals:

The mobile apps currently communicate with a RESTful API whereas the web talks to it’s own Tomcat back end. We want to unify this so that the web is also pointing to the API to avoid code duplication.

We want to build a single page application.

I want it to be very testable.

The last item brings me to my question. I want to build the site up from components. Does Angularjs support this? It seems to in some ways but it doesn’t support views within views, IIRC.

For extra credit, do you have an opinion on React and React Native?

Thanks,
Rob