The example is also unrepresentative of anything meaningful. TodoMVC[0] is the classic point of comparison, and the Backbone version is a nightmare to grok compared to React[2].
What you see as a nightmare is really straight-forward code from another perspective. It just looks very unfamiliar. Yes, it feels raw, it is verbose, it's imperative and not declarative, but the entire app lifecycle is there to see.
You can easily tell what every function is doing, including the library ones, and magical behaviour is kept to a minimum. It could be easily maintained 20 years from now, as you have a very thin layer over DOM manipulation and Backbone itself can be grasped and maintained by a single human.
One could argue that React leads to better development velocity, but from experience I can say that reality is not that simple. The initial speed boost quickly fades, instead a huge amount of time starts being allotted to maintenance, updates, workarounds, architecture and tooling as complexity compounds.
Who wants to maintain this nightmare? https://github.com/tastejs/todomvc/blob/gh-pages/examples/ba...
Devs love to invoke Chesterton's fence but somehow forget about it when looking back on "the good old days."
What's worse, there were never good old days for frontend. It always sucked, and now it still sucks--just far less.
[0]: https://todomvc.com/
[1]: https://github.com/tastejs/todomvc/tree/gh-pages/examples/ba...
[2]: https://github.com/tastejs/todomvc/tree/gh-pages/examples/re...