Foreword

This book's primary goal is to give you a nice introduction, tackle advanced features and to teach you as many best practices as possible. If you have not only understood how something works, but also grasped the 'why', then I have reached my goal. Every developer has different opinions on which methods are best and how to write code in a simple, beautiful and efficient fashion. However, I have tried to stay as close as possible to: the advice of the core engineers at Facebook; suggestions from the greatly appreciated folks at AirBnB; and some great minds of the React scene — all sprinkled with a little seasoning of my own years of expertise.

There are always a number of ways to publish your application, creating a bundle with tools such as Browserify, Rollup or Webpack. You can write your components as ES2015 classes or decide to use createClass from the old "ES5-times". Whenever I think it necessary, I will not only show you the various well-established ways, but also some alternatives.

Foremost, I want to delve deeper into the most modern, current and in most cases, the easiest, methods to use React, which is why I have chosen to use Webpack, Babel and ES2015 (and newer) for most of the code examples. Worry not though, I will explain this in more detail later in the book. People who have never come into contact with ES2015+ might take a little longer to understand some of the examples, however I will try my utmost to keep the examples concise and explain things further if necessary. You should possess basic JavaScript knowledge to get the most out of this book though.

Furthermore, this book is intended as an introduction to React. It is not an introduction to JavaScript. I assume you have a basic understanding of JavaScript and sometimes deeper understanding of its inner workings but I will aim to explain everything in this book to the best of my ability. This means that even if you have only used JavaScript in a superficial or broad sense, you should be able to understand most of the material covered in this book. I do not assume that you can recite the internals of a JavaScript interpreter from memory, but I assume that you know about the basics of scope in JavaScript, what a callback is and how Promise.then() and Promise.catch() work and how to make use of asynchronous programming with JavaScript.

But do not worry: it all sounds more complicated than it actually is. Every reader that has worked with something like jQuery in the past, should not have any problems working through the examples in this book and understanding the explanations.

A few words on this book

I self-published this book to retain full control on all channels of distribution, the pricing model and all rights and freedom. I am not "in it for the money" or to get rich, but I primarily want to have as many of you benefit from the book as possible. This is why you can still find a free German version of this book online at the following URL: https://lernen.react-js.dev.

Self-publishing indicates that while I retained full control, I was on ultimately on my own. There was no publisher that helped me to distribute the book or granted me access to an editor. Keeping this in mind, you might find this book a little rough around the edges and not as clean as you might be used to from a normal textbook. I apologize for this and urge you to contact me if you find any mistake — be it a spelling mistake, a grammatical error or an error in the content. Just open a ticket on GitHub.

The book has been written entirely in Markdown format. I have used Gitbook.com for my writing, loving the writing process on some days and hating it on others. The service is great for writing technical documentation, less so for writing entire books. Even if the name suggests otherwise.

If you loved the book or if you simply have a question, you can reach out to me via Twitter. I always like to receive feedback. It does not matter if it is words of encouragement or constructive criticism.

And now, I hope you enjoy the book!

Last updated