React is difficult to learn, no ifs and buts.
React isn't inherently difficult to learn. It's a framework that's different from that of other frameworks and libraries, so it's going to take time and effort to learn React.
It's easy to make mistakes since React behaves in a very different way compared to other frameworks. In particular, JavaScript is notorious for its lack of type safety and this can lead people into a lot of trouble if they aren't aware of how things work in JavaScript.
It's not just the syntax but the whole ecosystem.
React is just one tiny part of the stack. It's just the view layer, and even then it’s really only a library. React itself doesn't tell you how you should manage your data or how to structure your application—it gives you a small API surface area that lets you build applications with minimal wiring between components. This means that new people can learn React quickly because they don't have to learn all of the other complexities at once (e.g., Redux).
It's easy to make mistakes since React behaves in a very different way compared to other frameworks.
React's declarative nature means you're not just dealing with a new syntax or set of APIs; you're also learning a new way of thinking about building applications. In React, the flow of data through an application is handled by components that describe how to render their output based on the data they receive. There are no loops or conditionals in your code—just descriptions of how things should look at any given moment.
It's easy to make mistakes since React behaves in a very different way compared to other frameworks. For example, if you forget to return null from an event handler like onClick() in jQuery, your page won't crash—it'll just display whatever was on the page before this event occurred (this is why it's called “uncaught”). In React, however, omitting null causes something more severe: it will throw an error and won't continue rendering until all errors have been fixed! This can be frustrating when trying out new ideas without knowing exactly what's causing them not to work as expected.
The documentation is spread out, not really beginner-friendly, and not well organized.
The React documentation is spread out over many websites, which makes it difficult to find what you’re looking for. And the content isn’t beginner-friendly—you won’t find explanations of how React works, or how to use it with other libraries and frameworks.
The API documentation is also often located separately from its examples, making it difficult to navigate and understand what options are available for each component lifecycle method. This can cause confusion when searching for solutions because often times useful information is spread between multiple locations on the web.
There are also inconsistencies in how some tooling behaves compared to what they say they do in their documentation (e.g., React Router v4). It's unclear if this was intentional or not due to ongoing development efforts within each library itself as well as between libraries like React Native & Web (see "Why Does React Native Have Its Own Documentation?"), but either way it makes learning difficult at times because there aren't many resources that describe these discrepancies clearly enough so that developers know where issues might be coming from before encountering them firsthand!
React community has its quirks which makes it hard to fit in at first.
The React community is large, and can be quite opinionated. This makes it difficult for newcomers to find help and support. However, there are some simple ways you can make your way into the community:
Find a Twitter chat that focuses on React topics. These are easy to find by searching “react” or “#reactjs” in Twitter search. Here you'll find friendly people who are willing to help you out with questions about React or anything else related to JavaScript development (including Node).
If you're using an IDE like CodeSandbox or VS Code for writing your code, join the official CodeSandbox Discord server! There are channels dedicated to helping new users get started with these tools as well as lots of other things related to HTML/CSS/JavaScript/React development in general.*
If you're willing to put in the time and effort, React should not be difficult to learn.
If you're willing to put in the time and effort, React should not be difficult to learn. The learning curve is steep but once you get over it, it shouldn't be too hard to pick up on what's going on. The ecosystem can feel overwhelming at first, but there are lots of tools (like CodeSandbox) that help make things easier.
The documentation isn't as helpful as I'd like it to be but there are tons of resources online if you want to learn React without reading through everything yourself. And since most developers use a specific set of libraries with their own best practices for working with React components, newcomers will have a hard time finding out what those best practices are unless they try them out themselves or ask around in their communities.