An important benefit of decoupling from the actual DOM implementation and working at a higher level of abstraction in JavaScript is that we can easily test React components. If you think about it, a component is not radically different than an object or a function, gets some inputs, performs some actions and returns a value (JSX in this case).
References
- [Jest tutorial]
- [Official docs]