Interesting. As a developer who's done no front end work since the nineties and has had little appetite for getting back into it (after having seen what modern front end devs seem to contend with) I surmise that all those crap.js frameworks of the month don't do a whole lot of useful stuf after all. I suspected as much but was always too timid to speak up when I observed how much noise and fury in the office produced…
You can do quite a fair bit with vanilla JS, HTML, and CSS.
Things get a little tricky when you start having to maintain a lot of state that multiple elements need to be aware of.
It's not impossible to do this with vanilla JS, but the mental model can be a bit difficult and this gets amplified across teams.
What crap.js frameworks do well is provide a contract for how state can be organized and how components should react/interact with the change in state. This scales well across teams as following a set of mutually agreed upon conventions produces more legible code instead of an entire team rolling their own code for everything.