There are comparison questions like this one. Correct me if I am wrong, but it looks like both of them offer the same functionality; then why are there different identification terminologies?
AngularJS is an MVC - model, view, controller where React is just the view. AngularJS is a "complete" framework where React is just 1 piece of a project.
With AJS, you get most of what you need right off the bat. With React, you need to combine it with other packages to get the most out of it.
They have not the same functionalities, react has a lot less functionalities. React it's a library focused on the view, so you will need to use other libraries to create the whole app, instead angular is a framework, you can create your entire app with it and no need for other libraries.
My suggestion: go and spend a few days learning about each one and try to implement the same app with both, for instance try to create a todo app with react and then the same with angular, but try to do it by consuming rest services etc. After that you will have an idea about each one.
Mev-Rael
Executive Product Leader & Mentor for High-End Influencers and Brands @ mevrael.com
React and Angular, have something in common, but they do NOT have same functionalities.
To answer your question:
There are no general definition for the first one and everything always depends on context. You can read many papers, questions and different opinions on the Internet about that topic. I would short-define a framework as "set of libraries and patterns".
React itself without a context is a modern DOM library with VirtualDOM algorithms behind the scene. It can be a V in MVC. However, React evolved into huge component-based infrastructure and is used altogether with Redux and other libraries. In that case when we are observing application from the architecture level, we can say that React (with all other dependencies) is a "framework".
Angular is a full-featured MVC framework and React can be used as a view layer. Angular has many build-in components like ajax while in React you have to use other library for that: jQuery, fetch, old XHR, whatever else.