React is a JavaScript library for building user interfaces and not a Framework, this means React in itself will never be a complete web application builder because it will need several other resources by its side to give a complete web application experience.
ReactJS, React.js and React JS are the aliases for React and can be used interchangeably, so don't get confused the next time when you read different notations at different places.
Why React?
Uses a component-based approach: A component is one of the core building blocks of React.
In other words, we can say that every application we develop in React will be made up of pieces called components, these components make the task of building UIs much easier and increases the reusability of code.
Uses a declarative approach: Declarative programming is a programming paradigm that expresses the logic of a computation without describing its control flow.
Declarative programming is like asking your mom for food, you don't have to care how the food would reach your table, that's upto her.
This increases the speed of implementation of an application and its scalability.
DOM updates are handled gracefully, that's because React uses virtual DOM to manipulate data.