After about a year of trying to learn React, I still cannot grasp it

They say it is a library to help make development easier, but it has been an absolute nightmare. I understand vanilla JS with DOM manipulation better than I do React.

I have purchased many resources, but still, I only know the basics and cannot build anything elaborate with it.

I think state management is the most difficult part. Prop drilling, global state, etc…

I hate Redux with a passion. Then context api is a bit easier to understand, but still, I don’t know how to create anything meaningful.

I don’t know how to structure my state, what should be local to a component and what should be global.

I want to be able to create, for example, a blog from scratch that uses user authentication, etc… but don’t know how.

I am having trouble grasping frontend frameworks/libraries in general.

When should I have my “aha” moment, and that is if I do?

1 Like

Most likely you will have your ‘aha’ moment when you build this in vanilla JS:

If you understand vanilla JS you could just use that and build things.
Or you can use angular or Vue. All that matters is the result.

The only problem with that is I want to be hireable. I need to be able to grasp a frontend framework.

1 Like

You can try rebuilding projects with React that you originally did in vanilla JS. That might help you see the advantages of React, or at least strengthen your React skills to the same level as your JS skills.

I believe this sort of thinking is backwards. You should go out and try to build it to find out what you need to know. Going around trying to “accumulate knowledge” to a point where you know exactly what you need is how you get stuck “waiting” as its basically impossible to know everything you need to know before trying to build something.

I don’t believe in paying for knowledge when there is so much free knowledge out there. I also don’t believe you learn how to build complex stuff, without building complex stuff.

You wont until you go out and build what you want to build. Yes your going to get stuck, yes your going to be in a state of “I don’t know what I’m doing!!!”, and yes your going to need help. That’s the point. By diving into building what you want, and fighting your way to understanding you actually learn what you need to learn. By going through all the odds and ends you will instantly identify stuff you don’t know, then have to go learn it as you go along. You can spend all this time learning X Y and Z, and think you need to learning A B and C, when really you just needed to know F.

there’s a difference between knowing the path and walking the path - Morpheus from the Matrix

You can try all your want about knowing the path, but you don’t learn anything meaningful until you walk it yourself.

Go out and try to build a blog with authentication. Identify what you already know a decent amount, and identify some things you want to integrate into the stack you don’t. Focus on learning those things with the context of this project. As long as you can identify what you do know and what you don’t you have enough knowledge to begin. You don’t want to wait until you know you have 100% of what you need to know already “learned”, because that time will never come.

State management using Redux uses a lot of fancier JS syntax (hello spread)
But exists primarily to prevent prop drilling, and to isolate global state.

If you want to understand why you would want to use Redux (or context api), don’t use either and build a big app. You end up prop drilling everything.

How to structuring state is similar to how you would structure data in a database (if you have experience handling this) and is covered heavily in the docs.
The TLDR is recognizing state within the app and normalizing it so its not duplicated. If its duplicated you need to manage more “places” when updating said state. If you so please I recommend reading about database design as a lot of principles about how you handle relational data applies to how you design Redux state.

Finally I just want to point out the best teacher is failure. Evading it, and being scared from it is the slowest way to learn. Jumping at what you don’t know and learning how to get out of failure is the fastest way to learn.

1 Like

I got my aha moment after 4th react course, and was able to land js/react dev job after 7 months of study.
Try Robert Bunch React course on Udemy, he is the best at explaining react under the hood and redux in details.

A blog isn’t an ideal use case for React, or really any other library/framework (unless you’re using something like Gatsby).

I’d suggest trying something more like a basic multi-user CRUD app.

1 Like

Personally I recommend Bob Zirolls course on React. I found that him to be exceptionally clear on everything.