I’d say they scratch different itches. jquery helps you write better js, the same JS you may have been writing for two decades.
React is, from my perspective, an attempt to abstract away a lot of DOM, with the objective of decreasing the size of the solution space to common problems.
The idea is that two engineers working in two different parts of a company would write more or less the same code in react, whereas the jquery solutions would have been very divergent. React enforces patterns and makes it harder to write bad code. That’s the dream, at least!
I wouldn’t compare the two directly, they’re solving totally different problems. Jquery makes writing vanilla JS less verbose. React is more like an engine that’s written in JS and programmable with JS, with the goal of making browser code more composable and opinionated (wrt data flow).
They solve totally different problems. Jquery is a toolkit, react is a framework for how you build an entire app (reusable components that are specified by their props).
Long answer is that they don't do the same thing. I think jQuery was an incredibly clever and durable library and became so ubiquitous that most of it's most valuable features got folded into the JavaScript and CSS standards and no longer require dependency on a library. React is a modern way of structuring components. It's a fresh learning curve, but it's actually pretty intuitive and very useful.
JQuery is a great set of tools to make websites more interactive with JS.
react is a compiles-to-plain-js framework for building data heavy complex applications in the web browser.
React has its own template language built into your functions, quite opinionated data flow paradigms, and tries to abstract all of the direct attacking the DOM away into passing pure data around.
JQuery gives you better tools for hitting the DOM, but still is just a set of tools, not a development methodology.
As other people have said, they're different sorts of thing; but the sort of thing React is wasn't as big a deal in 2010. Backbone and AngularJS, two frameworks that are practically Precambrian at this point, both had their first release in late 2010.
In 2010 terms: let's say you want to write a web app. jQuery : your library of useful PHP functions :: React : Ruby on Rails. That analogy breaks down in many obvious ways (React isn't MVC and [modulo JSX transpilation and whatnot] uses the same language as jQuery, Rails is not easy to reason about especially if you're in 2010 and method_missing isn't considered harmful yet), but hopefully the basic idea comes through - library of functions vs. very opinionated framework that facilitates rapid development.
The main benefit is handling binding and state, and allowing you to easily break your application into a component hierarchy of reusable components. It also has an ecosystem that will let you find packages for most anything you want to do, probably in five different ways.
It's debatable if it really is for most sites, especially if you have a good way to generate/write your html. React is a better choice if you are truly building a web app rather than a website.
React is, from my perspective, an attempt to abstract away a lot of DOM, with the objective of decreasing the size of the solution space to common problems.
The idea is that two engineers working in two different parts of a company would write more or less the same code in react, whereas the jquery solutions would have been very divergent. React enforces patterns and makes it harder to write bad code. That’s the dream, at least!
I wouldn’t compare the two directly, they’re solving totally different problems. Jquery makes writing vanilla JS less verbose. React is more like an engine that’s written in JS and programmable with JS, with the goal of making browser code more composable and opinionated (wrt data flow).