Because it enables legacy code be reused in a/an good/expressive manner.<p>You just need to re-plug your legacy HTML+jQuery into render() and some functions in either React.createClass(to which is deprecated FYI), or React.Component (ES6 class extend).<p>Plus React features a very fast and tiny virtual DOM implementation making 60fps experience possible.<p>You can also do code separation by using ES6 modules system combining with Babel/Webpack so you can separate your CSS and images into somewhere else, this provides a better division and transparency of tasks and more or less benefited the software industries.<p>I mean Angular2 and Vue can do code separation too, but those two already came later than React.
It actually makes front-end developer feel like 'proper' software development again. Previously it felt like strapping together a bunch of jquery scripts.