DEV Community

Layade Victor
Layade Victor

Posted on

"Learning React" Book Review

"Learning React" by Alex Banks and Eve Porcello is a project-based guide that looks into the essential concepts of React, ensuring readers gain practical skills in using the framework effectively. From exploring the details of React Hooks to mastering advanced component patterns, this book equips you with the knowledge to build dynamic, efficient web applications. It also covers key libraries within the React ecosystem, providing a comprehensive foundation for developers at all levels.
In this article, I will summarise the book and explain it might be a good read for anyone looking to learn the basics of React.
The book starts by providing a brief history of React, addressing why it's considered a library. With JavaScript constantly evolving, beginners often struggle to keep up with the changes and understand the necessary syntax to build React applications. The authors tackle these challenges in the opening chapters, introducing fundamental concepts such as variable declarations, function declaration methods, ES6 syntax, destructuring, and asynchronous functions. The following chapter explores the differences between imperative and procedural programming and explains how React embraces functional programming both its build and usage. It also covers the core principles of functional programming. This section concludes with a detailed explanation of React basics, including the Virtual DOM, React components, and how React code is compiled into JavaScript.
Chapters 6-9 were a deep dive into the use of hooks in React, it provide clear explanations and real-world use cases of these hooks. In Chapter 6, the author introduces useRef, showing how it can be used to interact with the DOM, particularly in handling forms. Chapter 7 follows with a discussion on essential rules for using hooks, explaining the differences between useEffect and useLayoutEffect, as well as useCallback and useMemo. Chapter 8 dives into how useState and useEffect are utilized for data storage and requests, highlighting the importance of combining useEffect with fetch for API handling—a crucial skill for building web applications. Finally, Chapter 9 explores error boundaries and suspense, key concepts for managing errors and handling asynchronous operations in React.
The book's final section covers testing in React, the use of React Router for navigation, and how React's limitations have led to the development of meta-frameworks like Next.js and Gatsby.
One of the book’s strengths is its beginner-friendly approach. It excels at delivering essential programming and JavaScript knowledge required for starting with React without straying off-topic. The book effectively explains the relevant JavaScript syntax used in React and illustrates how React supports functional programming without overwhelming readers with excessive details. Additionally, it provides a nuanced discussion of each hook, highlighting the distinctions between them.
Two major shortcomings of the book are: firstly, the GitHub repositories for Chapters 6-9 are missing, which are crucial for the practical aspects of the book. Secondly, towards the end, the author begins to rush through the material. A slower pace could have provided a more thorough education for readers instead of hastening to finish the book.
Whether you're learning React or working as a developer, this book is a valuable resource for anyone looking to master the essentials of ReactJS. It equips readers with the crucial knowledge needed to excel in React development, making it a must-read for both beginners and experienced developers seeking a deeper understanding of the framework.

Top comments (0)