Post/Code

HomeAboutUsesNow

React Developer Roadmap: Part 2.

Build Tools and Package Managers.

When it comes to Package Managers, I doubt you would get very far in the modern JavaScript world without getting to know NPM or Yarn, so to me, the more you code, the more familiar you will get with these tools.

As for Build Tools, fortunately, as far as I know, the major frameworks tend to have their own CLIs which take care of most of the basics required to get up and running. As a result, getting started, I would not fret too much about learning Webpack and the rest. What you do need to keep in mind, is that, mostly, it is Webpack that sits underneath Create React App, the Angular CLI and so forth. As such, learning Webpack is definitely valuable if you need to make customisations to your build tools.

State Management.

I have only recently started learning Redux, and have no experience with MobX so I don't have much to add here. Redux seems to have proliferated very deeply and widely across the React ecosystem so even though Hooks provides alternatives, chances are good that many existing React applications are still running with Redux. As such, it is very important to learn it. That being said, it is better to learn to manage React's component state before diving into Redux. As Dan Abramov himself has said, Redux is not the solution for everything. It is a tool like any other and should be used as such. Decisions on how to manage state need to be made on a project specific basis. My feeling is you should only move on to Redux once you are fairly comfortable working with React's own state.

In addition to this, it is also important to learn about localStorage on the browser.

*Not mentioned on this Roadmap since I believe it only came after it was published, but Hooks seems to be the next big thing in React state.

Forms.

When it comes to React and forms, my current experience is to manage forms via local component state and controlled components. From what I have seen Redux Form is not advisable with the developer himself putting up a notice regarding its shortcomings. I have not used Formik or any of the others, but my feeling is that good ol' controlled components will get you quite far. That being said, Redux Form and Formik are on my React to-do list.

API Clients.

When it comes to API clients mentioned here, these are applicable across all of JavaScript. Axios is widely used in Node.js and SuperAgent tends to be popular in the world of testing. I would venture to say that fetch support might still be a question mark when it comes to browser support on the front-end. From what I have seen, Axios is by far the preferred tool for React and Node.js.

GraphQL.

While I have used GraphQL on this very site and have done some basic tutorials on it, I am still far more familiar and comfortable with the REST approach. Once I have completed my React/React Native learning spree, chances are good I will turn to GraphQL on both the server and client to improve my understanding and use of it.

Routing.

As far as I know, react-router is more or less the de-facto router for React.

Utility Libraries.

I am very happy to see these included here. Lodash is fantastic. As is Moment for working with dates and times. RxJS is heavily used in the Angular world, though I have not seen much of it in React so far. I am not familiar with the others mentioned thus far.

Testing.

As far as I can tell, when it comes to React testing you need to focus on the following: Jest, Enzyme or React Testing Library and Cypress. Those will get you very far.

i18n and a11y.

Adam does not include a11y in his list, but I believe it should have a place here. I myself have limited experience with a11y but it is something I need to invest on in the future. Having work on various multi-lingual projects in my career, I have done quite a lot of work with i18n, however, none in React so far. As such, I will definitely be going with Adam's recommendations here.

Mobile.

I am currently learning React Native and the applicability of React to React Native was one of the large attractions of React for me.

The Rest.

In short:

  • Gatsby is great! It is growing rapidly in popularity and is great to work with.
  • I have heard good things about Next.js, and I intend to delve into it in future, but it is not a high priority for me at this very moment.
  • I would not bother with the "Backend Integration" section unless you work in Ruby. I don't know what similar tools are available for Node.js or other languages and am not sure why it has been listed.
  • I know next to nothing about the rest of the items so will not comment on any of them.

All the best for your learning journey!