When a component is updated by calling setState, does React run the diffing algorithm on the whole DOM tree, or only on the part of it that belongs to the updated component?