The same as on any other tie, one needs for JavaScript code:
* Abstractions (separation of concerns)
* Implicit conventions and consistance
* Code reusability
You can get it with Vanilla JS of course, but will have to write a sort of a framework by yourself. So you rather take an existing well-known and proven solution.
These are core requirements, any other depends on how much you allow the framework to restrict your development process.