Maybe this was so in 2013-2015, but React today does a lot of things (module loading, component rendering, basic state management, scheduling, memoisation, caching), and will soon do even more (server components in some custom json format, rendering server). Gone are the days when React was a simple "view library"
React doesn't load modules, you need a bundler for that. It just supports a component type that blocks rendering until a promise containing a component resolves.
I agree that it is arguable, but I would say that React is a framework for this reason: usually you do not decide when to call React code, instead React code decides when to call your code.
> React does one thing. It’s arguably not a framework at all.
But that's React's failure, too. The lack of officially-supported libraries for common things such as routing leads to the horrible situation of having multiple competing, each-with-different-inconsistencies implementations of routing and moving from one React project to another transfers very little skills compared to other libraries such as Vue.
As someone currently using Rails, I would say React is nothing like Rails. Rails is just magic everywhere, where as React feels very explicit about what it does.
What parts of Rails are magical to you? This is an exaggerated stereotype imo. Spring framework felt way more "magical" than whatever Rails is doing to me.
You can look at the Rails docs and it's all explained pretty clearly to me...
I went through a cycle of: study ruby -> start using rails -> seems magical -> realize you don't know ruby yet -> study more -> rails no longer feels magical. I suspect this is typical given that there is lot more to ruby than appears on the surface and rails heavily leverages the metaprogramming capabilities.
It's more analogous to an alternative history where the Ruby framework most people used was Rack [directly], not anything built on top of it (ie Rails).