The principal thing React will do when setState is called is merged the object you moved into setState into the current state of the element. This will kick off a process called reconciliation. The end goal of reconciliation is to, in the most effective way possible, update the UI based on this new state.
To do this, React will build a new tree of React elements (which you can think of as an object representation of your UI). Once it has this tree, in order to figure out how the UI should change in response to the new state, React will diff this new tree against the prior element tree. By doing this, React will then identify the exact changes which occurred, and by knowing exactly what changes occurred, will able to reduce its footprint on the UI by only making updates where completely necessary.