First, make peace with the fact that you need to learn more than just React to work with React. This is a good thing, React is a library that does one thing really well, but it’s not the answer to everything.
However, identify whether what you’re currently learning is React or not, mainly so that you don’t get confused about your effort to learn React itself. A programmer who is comfortable with HTML and one other programming language will be able to pick 100% of React in 1 day or less. A beginner programmer should be good enough with React in a about a week. This is not counting the tools and other libraries that complete React like for example, Redux or Relay.
- The new features of the object literal and template strings
- Block scopes and let/const vs var
- Arrow functions
- Destructuring and default/rest/spread.
- Classes and inheritance (used slightly in defining component, but to be avoided otherwise)
- Class field syntax to define methods with arrow functions
- Promise objects and and how to use them with async/await.
- Imports and exports of modules (most important of all)
You don’t have to start with ES2015, but you do need to eventually learn it (and not because you’re learning React).
So other than ES2015 stuff, you need to learn the following to be a productive React developer.
- The APIs of React, ReactDOM, ReactDOMServer: These are not big APIs really, we’re talking about maybe 25 different things and you would rarely use them all. The official React documentation is actually a very good starting point (it has gotten a lot better recently), but if it still confuses you, watch an online course, read a book, or join a focused workshop. Your options are endless here, but be careful what you pick and make sure it has a focus on React itself and not its tools and ecosystem.
- React ecosystem libraries: Since React is just the UI language, you’ll need tools to complete the picture and go beyond even MVC. Don’t start here until you’re very comfortable with React itself. I’ll give you two things to focus on, just forget everything else you encounter and learn these two first once you’re done with React itself: react-router and redux.
- Right after getting comfortable with the raw concepts of React itself, build a React Native app. You’ll only truly appreciate the beauty of React once you do that. Trust me.
During your learning process, the best thing you can possibly do is build stuff with your own hands. don’t copy paste examples, don’t follow instructions blindly, but rather, mirror the instructions to build something else (ideally, something you care more about). Whatever you do, just do not build a TODOs app.
Recently, I’ve created an interactive learning tool with audio instructions for jsComplete. The first lab I tested the tool with was a React.js example. If you take the lab, please make sure to leave me your feedback.
Good luck and have fun! If you ask nicely, I’ll be happy to review your first React application and give you some pointers.
Thanks for reading.