Build modular React web apps that are scalable, maintainable, and powerful using design patterns and insightful best practicesKey FeaturesGet up to speed with design patterns in React such as render props and controlled and uncontrolled inputsBecome well-versed with React Hooks in this updated third editionWork through examples that can be used to create reusable code and extensible designsBook DescriptionReact is an open-source, adaptable JavaScript library for building complex user interfaces (UIs) from small, detached bits called components. This book will help you to use React effectively to make your applications more flexible, easier to maintain, and improve their performance, while giving your workflow a huge boost by improving speed without affecting quality. You'll start by understanding the internals of React, before gradually moving on to writing maintainable and clean code. The chapters that follow will show you how to build components that are reusable across the application, structure applications, and create forms that actually work. Later, you will build on your knowledge by exploring how to style React components and optimize them to make applications faster and more responsive. Finally, you'll write tests effectively and learn how to contribute to React and its ecosystem. By the end of this book, you'll be able to avoid the process of trial and error and developmental headaches, and instead, have the skills you need to efficiently build and deploy real-world React web applications.What you will learnGet to grips with the techniques of styling and optimizing React componentsCreate components using the new React HooksGet to grips with the new React Suspense technique and using GraphQL in your projectsUse server-side rendering to make applications load fasterWrite a comprehensive set of tests to create robust and maintainable codeBuild high-performing applications by optimizing componentsWho this book is forThis book is for web developers who want to increase their understanding of React and apply it to real-life app development. Intermediate-level experience with React and JavaScript is assumed.