Outline

That was the last chapter of the book. I hope you enjoyed reading it and that it helped you to get traction in React. If you liked the book, share it as a way to learn React with your friends. It should be used as giveaway. In addition, you could take 5 minutes to write a quick review about it on Amazon.

But where can you go from here after reading this book? You can either extend the application on your own or give your own React project a shot. Before you dive into another book, course or tutorial, you should create your own hands-on React project. Do it for one week, take it to production by deploying it somewhere, and reach out to me on Twitter to showcase it. I am curious what you will build after you have read the book and I will gladly share it with my followers. You can also find me on GitHub to share your repository.

If you are looking for further extensions for your application, I can recommend several learning paths after you have used only plain React in this book:

  • State Management: You have used React this.setState() and this.state to manage and access local component state. That’s a perfect start. However, in a larger application you will experience the limits of React’s local component state. Therefore you can use a third-party state management library such as Redux or MobX. On the course platform Road to React, you will find the course “Taming the State in React” that teaches advanced local state in React, Redux and MobX. The course comes with an ebook as well, but I recommend everyone to dive into the source code and screencasts too. If you liked this book, you should definitely checkout Taming the State in React.
  • Sample Projects: After learning plain React, it is always good to apply the learnings first in your own projects before learning something new. You could write your own tic-tac-toe game or a simple calculator in React. There are plenty of tutorials out there that use only React to build something exciting. Check out mine about building a paginated and infinite scrolling list, showcasing tweets on a Twitter wall or connecting your React application to Stripe for charging money. Experiment with these mini applications to get comfortable in React.
  • Code Organization: On your way reading the book you came across one chapter about code organization. You could apply these changes now, if you haven’t done it yet. It will organize your components in structured files and folders (modules). In addition, it helps to understand and learn the principles of code splitting, reusability, maintainability and module API design.
  • Connecting to a Database and/or Authentication: In a growing React application, you may want to persist data eventually. The data should be stored in a database so that it can survive after a browser session and be shared across different users using your application. The simplest way to introduce a database is using Firebase. In this comprehensive tutorial, you will find a step by step guide on how to use Firebase authentication (sign up, sign in, sign out, …) in React. Beyond that you will use Firebase’s realtime database to store user entities. After that, it’s up to you to store more data of your application.
  • Testing: The book only scratched the surface of testing. If you are not familiar with the general topic, you could dive deeper into the concepts of unit testing and integration testing, especially in context of React applications. On an implementation level, I would recommend to stick to Enzyme and Jest in order to refine your approach of testing with unit tests and snapshot tests in React.
  • Asynchronous Requests: You can substitute the native fetch API with third-party alternatives to perform asynchronous requests: superagent or axios. There is no perfect solution to make asynchronous requests. But by exchanging the buildings blocks around React, you make the experience how powerful it can be to have this flexibility. In frameworks you usually stick to one solution. In a flexible ecosystem like React you can exchange the solutions.
  • Routing: You can implement routing for your application with react-router. So far, you only have one page in your application. React Router helps you to have multiple pages across multiple URLs. When you introduce routing to your application, you don’t make any requests to your web server to fetch the next page. The router will do everything for you on the client-side.
  • Type Checking: In one chapter, you have used React PropTypes to define component interfaces. It is a good practice to prevent bugs. But the PropTypes are only checked on runtime. You can go one step further to introduce static type checking on compile time. TypeScript is one popular approach. But in the React ecosystem, people often use Flow. I can recommend to give Flow a shot if you are interested to make your application more robust.
  • Tooling with Webpack and Babel: In the book you have used create-react-app to set up your application. At some point, when you have learned React, you might want to learn the tooling around it. It enables you to setup your own project without create-react-app. I can recommend to follow a minimal setup with Webpack and Babel. Afterward you can apply more tooling on your own. For instance, you could use ESLint to follow a unified code style in your application.
  • React Native: React Native brings your application on mobile devices. You can apply your learnings from React to ship iOS and Android applications. The learning curve, once you have learned React, shouldn’t be steep in React Native. Both share the same principles. You will only encounter different layout components on mobile than you are used to in web applications.

In general, I invite you to visit my website to find more interesting topics about web development and software engineering. You can subscribe to get updates roughly every month to your inbox and you can decide to support this kind of content by being my Patron. Furthermore, the course platform Road to React offers more advanced courses to learn about the React ecosystem. You should check it out!

Once again, if you liked the book, I want you to take a moment to think about a person who would be a good match to learn React. Reach out to that person and share the book. It would mean a lot to me. The book is intended to be given to others. It will improve over time when more people read it and share their feedback with me.

Thank you a lot for reading the Road to learn React.

Robin