React says what things should be, given a limited state. (These elements read X, and update when X changes.)
Vanilla JS says how to do things (find these HTML elements and update them by doing X).
It is much simpler to track and mutate a state object, than it is to find all the nodes you need to update and update appropriately.