If it's only a static website, for instance a blog or your personal portfolio, HTML & CSS with a couple of vanilla JavaScript functions is fine. However, once you add complexity to your application, by using more than a couple of utility JavaScript functions, there needs to be some kind of "framework" to organize your View and Logic. React is used when it comes to organizing your view as components, and JavaScript ES5 and beyond is doing the rest by adding the necessary business logic. That's what makes React so great in the end, because most of it simply stays plain JavaScript [0]. React is only the view layer by organizing your application in components.
In case you are interested, just recently I had written down my thoughts [1] on this questions for people learning React, Angular or Vue nowadays, but questioning why they should learn it in the first place.
- [0] https://www.robinwieruch.de/essential-react-libraries-framew...