React Introduction
Published: 2021-06-04 12:02:33

{% youtube Tn6-PIqc4UM %}
*Video tutorial of this article*

Hello to this quick course on React. The most in-demand JavaScript frontend library in the market for 2021. 

This series of articles are written for the [Software Development Academy](https://sdaproject.se), a joint venture between KTH and Novare Potential to re-skill people to become junior developers in Sweden.

Although these articles are written for them, I will try to make them self-contained as possible so anybody can use them, even graduates from the SDA could come back and have a refresher on React in the future.

---

# Getting started
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uha0jllw2lqd2vz3hswi.png)
Figure 1: An overview of the category of articles this course contains.

To tackle this library's complexity, I will divide the articles into 5 categories. Each category has a few articles to expand on it.

---

# Table of contents sorted by difficulty

1. **Getting started:**
  * [React introduction]() (this article)  
  * [Create a React app using the command line](https://dev.to/softwaredevacademy/create-a-react-app-using-the-command-line-3e6p)
  * [Create functional components in React](https://dev.to/softwaredevacademy/create-functional-components-in-react-59h5)
  * [Passing data to components using props](https://dev.to/softwaredevacademy/passing-data-to-components-using-props-4lp0)
  * [Creating a list of components using functional programming](https://dev.to/softwaredevacademy/creating-a-list-of-components-using-functional-programming-5aa7)
1. **Making stuff interactive:**
  * [Introduction to state management and React Hooks](https://dev.to/softwaredevacademy/introduction-to-state-management-and-react-hooks-285j)
  * [Manage local state with useState hook](https://dev.to/softwaredevacademy/manage-local-state-with-usestate-hook-3j2k)
  * [Button events in React](https://dev.to/softwaredevacademy/button-events-in-react-5cml)
  * [Form events in React](https://dev.to/softwaredevacademy/form-events-in-react-4k8a)
1. **Handle multiple pages:**
  * [Install external components using NPM](https://dev.to/softwaredevacademy/install-external-components-using-npm-3480)
  * [Handling multiple pages with the external component React Router DOM](https://dev.to/softwaredevacademy/handling-multiple-pages-with-the-external-component-react-router-dom-l4a)
  * [Manage server state with useEffect hook](https://dev.to/softwaredevacademy/manage-server-state-with-useeffect-hook-3hbc)
4. **Manage large projects:**
  * [Manage global state with Recoil.js](https://dev.to/softwaredevacademy/manage-global-state-with-recoil-js-1h6k)

---

# Table of contents sorted by category

Beware, this approach will make you read certain articles that are harder to understand before others. Use it as a quick reference once you read the articles sorted by difficulty.

1. 📕 **Introduction:**
  * [React introduction]() (this article)
  * [Create a React app using the command line](https://dev.to/softwaredevacademy/create-a-react-app-using-the-command-line-3e6p)
1. 📙 **Components:**
  * [Create functional components in React](https://dev.to/softwaredevacademy/create-functional-components-in-react-59h5)
  * [Passing data to components using props](https://dev.to/softwaredevacademy/passing-data-to-components-using-props-4lp0)
  * [Creating a list of components using functional programming](https://dev.to/softwaredevacademy/creating-a-list-of-components-using-functional-programming-5aa7)
  * [Install external components using NPM](https://dev.to/softwaredevacademy/install-external-components-using-npm-3480)
1. 📒 **State management:**
  * [Introduction to state management and React Hooks](https://dev.to/softwaredevacademy/introduction-to-state-management-and-react-hooks-285j)
  * [Manage local state with useState hook](https://dev.to/softwaredevacademy/manage-local-state-with-usestate-hook-3j2k)
  * [Manage server state with useEffect hook](https://dev.to/softwaredevacademy/manage-server-state-with-useeffect-hook-3hbc)
  * [Manage global state with Recoil.js](https://dev.to/softwaredevacademy/manage-global-state-with-recoil-js-1h6k)
1. 📗 **Event handling:**
  * [Button events in React](https://dev.to/softwaredevacademy/button-events-in-react-5cml)
  * [Form events in React](https://dev.to/softwaredevacademy/form-events-in-react-4k8a)
1. 📘 **Manage large projects:**
  * [Handling multiple pages with the external component React Router DOM](https://dev.to/softwaredevacademy/handling-multiple-pages-with-the-external-component-react-router-dom-l4a)

---

# Conclusion

This will be a long course, but I will try to break it down into small bite-size articles, so they don't become tiresome to read. Also, the contents will allow you to go directly to a particular topic when you need to remember it. To go to the first article, [click here](https://dev.to/softwaredevacademy/create-a-react-app-using-the-command-line-3e6p)

By the way, this is chibi Godzilla. Sometimes it will appear on the articles to give additional information and even emotional support. On some occasions, he goes full evil and can be a bit mean, so be aware of it.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2zlhhz4zyq5zj44kv3co.png)


---

# Credits
* Cover picture: Photo by <a href="https://unsplash.com/@lemonvlad?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Vladislav Klapin</a> on <a href="/s/photos/hello?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
* [React in 100 seconds](https://www.youtube.com/watch?v=Tn6-PIqc4UM&feature=emb_title): By Fireship YouTube channel.
* Mini dinosaur: <div>Icons made by <a href="https://www.freepik.com" title="Freepik">Freepik</a> from <a href="https://www.flaticon.com/" title="Flaticon">www.flaticon.com</a></div>