React is more of a plague than a wonderful downstream effect or mixed bag. It’s essentially cemented Js as the way to build a website even if you don’t need the complexity. It is the leader in brain dead Js evangelism.
Credit where credit is due, though: ReactJS became #1 on its merits.
...yes, Redux (not React) deserves to be #1, but Redux isn't a complete, all-under-one-roof framework the way React is; but regardless of that: The Redux/React approach is just fundamentally a better design than what we had before: stateful-controls/widgets and two-way data-binding.
If you'd like to relive how UI devs suffered throughout the 1990s, 2000s, and most of the 2010s I invite you to try making a native Windows 11 desktop UI using WinUI3 using the MVVM (anti-) pattern: nothing but mutable objects of indeterminable state getting caught in infinite-loops or unbound recursion due to INotifyPropertyChanged - and Microsoft is still pretending that's the "right" way to build a UI.
Sorry am ranting on about something I have very little control over; it's just frustating.
> Redux only plays a role in adding syntactic sugar over React's support for reactive programming
Redux doesn't have anything to do with any kind of syntactic-sugar for Reac.
> the general guidelines are that you should only bother with Redux if your SPA is already considerably complex
If one already has an (non-React) SPA which is not already built following Redux then you're stuck with what you've got; it isn't really possible to take an existing SPA of any complexity and deciding to "make it use Redux" because it completely up-ends practically every aspect of SPA application-design, at least as far as how "traditional" (non-React) SPAs do things.
If you'll permit me to oversimplify: I tell people that React is a basically an opinionated Redux kernel wrapped around a JSX-based DOM+component/widget system (, which then means you now need a JS build system too); or conversely: Redux is like React, except without JSX components.
> If one already has an (non-React) SPA which is not already built following Redux then you're stuck with what you've got;
This is simply false and is outright wrong. This even goes against the most basic React+Redux guidelines. Dan Abramov, one of the creators of Redux, is quoted in Redux's FAQ:
> would like to amend this: don't use Redux until you have problems with vanilla React.
> it isn't really possible to take an existing SPA of any complexity and deciding to "make it use Redux"
Frankly, you sound as if you have absolutely zero experience with React. I know for a fact that a few flagship SPAs from a few companies, including some FANG webapps, do not use Redux.
I made several large Cocoa (macOS AppKit, Obj-C) apps in 2004-2018 using the classic Smalltalk-inspired MVC patterns and this was never a problem. Sometimes writing the controller boilerplate was boring, but at least there were no observer loops, it was simple to debug where things happened, and undo/redo were reliable to implement through the framework.
Maybe Microsoft just never was very good at these 1990s style GUIs?
...yes, Redux (not React) deserves to be #1, but Redux isn't a complete, all-under-one-roof framework the way React is; but regardless of that: The Redux/React approach is just fundamentally a better design than what we had before: stateful-controls/widgets and two-way data-binding.
If you'd like to relive how UI devs suffered throughout the 1990s, 2000s, and most of the 2010s I invite you to try making a native Windows 11 desktop UI using WinUI3 using the MVVM (anti-) pattern: nothing but mutable objects of indeterminable state getting caught in infinite-loops or unbound recursion due to INotifyPropertyChanged - and Microsoft is still pretending that's the "right" way to build a UI.
Sorry am ranting on about something I have very little control over; it's just frustating.