DEV Community

Discussion on: Learning React

Collapse
 
hijazi313 profile image
Muhammad Hamza Hijazi

Brad is a teacher who covers everything related to full stack development. But I was unable to understand most of his tutorials, I don't know why but it's true. But it didn't stop me from watching his tutorials I love his tuts.

Now let's come to you, as you have just started learning React , so you are a beginner and you will find many things difficult to digest at this stage, but don't worry bro, it's natural.

In order to learn React I personally think one should know about Javascript and Especially ES6+ and how some of it's features work under the hood.
Then there are some topics which you should know , First learn Working with class based components and try to learn each and everything with those Class Based components e.g working with props, define methods, how to manage a component local state with this.sate and how to effectively update state with setState and some of the Lifecycle methods which will help you to run some block of code at specific stages in your program i.e componentWillMount() etc.

Then you should know about Higher order components and why we need them and how to use them.
What are pure components ?
Working with refs
Routing with react-router-dom
Passing properties within different components. And propType checking
prop drilling and State management with Context API concept.
Form handling with React. React Events
Then start learning about React Redux, how to manage state with React-redux.
After learning all these move to functional components and learn about react hooks which help you to manage state and provide lifecycle methods in functional components.
Then learn how to consume data from third party REST APIs.
How to perform authentication, and Protected Routes in your app.
You should also know how to style properly your react apps and their components. Learn any famous UI library such as Material UI, ANT Design, Tailwind css.
I hope learning these things will make you a better react developer.