Not that Redux is too complicated (it actually has a super simple API). Redux is a (fantastic!) tool you should use once your project is at a large enough scale that you need it. You can go a long way in vanilla React before you feel the pains that Redux (or Relay) solves. The React part of my current codebase is over 25k LoC and I still don't feel the need to throw Redux into the mix.
Take a peep at http://djcordhose.github.io/hh-react-conf-2016/redux-vs-rela...
If you're just starting out then first spend several weeks/months in vanilla React. Unless you need to learn Redux to work on a bigger codebase at a new job or something...
Qualification: I used to work on React Native at Facebook.
Since you do probably need a server, I don't have an incredibly educated answer for you but I use Node + Mongo on AWS because it's cheap, easy, entirely JS, and seems like it'll scale reasonably well (to some point).
Agree and so do others:
https://mobile.twitter.com/mjackson/status/74507491083006771...
Admittedly this may sound like "argument from authority", but I just mean that it's not an unpopular opinion. I've seen way too many people be too dogmatic about Redux. Core React is underrated.
I've been wanting to learn React for a while, but each time I start, I'm put off by the complexity it adds (compared to e.g., jQuery + vanilla JS). I soon will just jump in and learn to swim.
BTW, do folks use React for server-side apps as well? If so, is that common?
Also, I almost ROFL at the "axes might be logarithmic" in that graph's legend!
You can definitely render your React code on the server and (distrubutedly + carefully) cache the result to make your initial page load blazingly fast. IMO it's more of an optimization though.
I don't personally use this feature since client-side rendered has been plenty fast enough for me so far.
Learning React is IMO one of the most impactful things I've ever done to be able to effectively build products, couldn't recommend it more!
I mean, React is only when you have an object and want to render an UI component, right? That's quite a small part of what even a simplest CRUD interface has to do (i.e. acquire the object from server and then try to keep it in sync with both server-maintained state and user feedback).
I have a few wrapper components that know how to fetch various datas (a product, post, etc). They then pass this data into their children via props. When the user makes a mutation (vote, comment, post, etc) I'll let my server know to make the mutation and then do one of two things:
1. Optimistic: "Fake" the mutation using state until the server response comes back, then reload the data
2. Loading Indication: Give some sort of indication that the mutation is happening (eg. a spinner) and then when the server response comes back, reload the data
We don't currently update data live when there are changes on the server. This could be trivially implemented with polling. Or the more complicated solution would be to use a socket and subscribe to certain datas on the server which would get pushed to the client upon mutation. (see GraphQL Subscriptions! http://graphql.org/blog/subscriptions-in-graphql-and-relay/)
I have trouble following someone else's pace in a video (or audio for that matter). I also like to be able to copy and paste code into my editor. Navigation to particular sub sections is easier too.
For me, hearing a description will often come with some emotional cues. Stuff like, "Now this is cool..." or "Oof, forgot the iterator..." help me learn where I should be paying attention.
Text often has a hard time conveying the same set of information. Sure, you can type 'watch out!' in a yellow box around some text, but my ape brain doesn't pick those up as the same as watching (or listening) to another ape brain make the mistake or exclaim in delight.
I think the video format is a kind of forcing function in terms of the presenter really explaining things (if they aren't just reading off the screen). Which in turn made the transcript great to read.
I'm on Windows though so I assume a lot of my issues stem from the tutorial authors assuming they are talking to a purely *nix crowd.
I don't get the react hype anyways. Writing inline HTML in JavaScript seems so weird to me (JSX).
(I hope the comment doesn't indicate that you think the interesting thing about React is JSX.)
Then, I can loop back to that text armed with a little context. Videos are often examples of how to develop with the technology outside of a bubble. (Using React? Consider setting up webpack!) That seems to be missing from manuals sometimes.
However, unless building a madly complex UI I've decided it's best avoided; mostly because now that I can build super complex UIs I probably will rather than simplify things that can work in a progressively enhanced way.