There really isn’t a whole lot making React stand out in a positive way in this comparison. Both performance and code length are towards the maximum acceptable, and the framework comes with its own language you have to learn, JSX.
Especially because that doesn’t really buy you anything. You get a hybrid between two languages with incompatible syntax – like writing Java code mixed with Python – just “because it is a concise and familiar syntax for defining tree structures with attributes.“
To be fair, JSX is just optional, not mandatory. So what other benefits does React offer, if we want to count JSX as a benefit? According the home page, the key benefits are that it’s Declarative and Simple. Like, I don’t know, all the other frameworks in this comparison.
Frankly, the main reason to use React is because someone tells you to. It’s a Facebook project, which means it gets lots of love and ongoing development. It’s also very popular on StackOverflow, despite being only a little older than a year.
React has definitely had a disproportionate impact, considering how new it is. It does remind me, though, of the interminable list of pet projects that were floating around at Yahoo! when I worked there: it seems to be something born out of enthusiasm and the desire to do something new more than because all available options were unacceptable. Also, it seems to touch on an internal workflow more than on general conditions of the marketplace.
The code is organized as usual. There is an app.jsx, a JSX file for the footer, and models for the todo item. There is also a utilities file, just because the JSX processor wants something extra to do.
I repeat, I am not sure who React is for. It seems to find improbable solutions to problems already solved a year before it came into being. At least, though, it relies on a company that has been pretty consistent with its APIs and its support for its APIs. That gives it the edge over the little projects, always on the verge of losing their drive, and those that come from overstretched companies.