Learning React
Learning React by Building Games

Learn all the fundamental and advanced concepts of React.js by building simple browser games

  • eBook (pdf, epub, mobi)
  • liveBook (interactive based on skills)
  • Development Environment

    Starting a full-stack React project from scratch with Node.js, Babel.js, and Webpack.

  • Modern JavaScript

    Object literal and template strings. Block scopes and let/const. Arrow functions. Destructuring. Default params. Rest and Spread operators. Classes and inheritance. Class fields. Promises and async/await. Imports and exports of modules.

  • Introduction to React.js

    The design concepts behind React.js and the practical advantages of the Virtual DOM. The JSX JavaScript extension.

  • React.js Fundamentals

    How React is used to describe User Interfaces, the imperative DOM vs the declarative React. The generate-html design concept, The virtual refresh mentality, the nature of reactive updates. The benefits of components, readability, reusability, composabality. Using React beyond HTML.

  • React Elements and Components

    The object representation of HTML elements. The children concept, one vs array. Elements nesting and the elements tree. Components as stateless functions. The component instance object and its properties and methods. The constructor and render methods. Handling events in the render method (avoiding function creation). Components modularity for separation of concerns, abstraction and uniform behavior. Component Lifecycle methods

  • JSX and Component props

    How JSX is an optional JavaScript extension, what it compiles into. Expressions in JSX. Escaped by default (and dangerously set html). The DOM API syntax for element attributes, self closing tags. The immutable props object, PropTypes and DefaultProps. The spread operator. Special props like style and working with CSS

  • Managing State

    Reading and updating the state. Data transitions vs structure change. Understand minimal state and computable parts. Presentational vs container components. State management and inverse flow. Working with API Data. Subscribing to external state.

  • Working with Events and User Input

    Taking input from users. Native events wrapping. Instance refs, string and function values. How to access the DOM API when needed. Controlled components. Form Validation

  • Testing React.js Components

    Unit and functional testing. Testing dependencies. Snapshot testing. Custom Matchers. Mocking

  • Advanced Concepts

    Higher order components. Composition. Immutability. React without JSX. The createElement API. Performance Optimization. Production Deployment and Optimization. Universal Isomorphic Rendering. Best Practices

About the Author

Samer Buna

Samer Buna

Samer is a polyglot coder with years of practical experience in designing, implementing, and testing software, including web and mobile applications development, API design, functional programming, optimization, system administration, databases, and scalability. He worked in several industries including real estate, government, education, and publications.

Samer has also authored several technical books and online courses about Node.js, React.js, GraphQL, and Ruby on Rails. He is passionate about everything JavaScript, and he loves exploring new libraries.