🇩🇪
Programm
Writing modern JavaScript (ES.Next)
  • Modules, Classes, Inheritance
  • ES6 Array Helpers & Utility Functions
  • Spread & REST Operators
  • Value Types, Reference Types & Immutability
  • Template Strings
  • Destructuring and Composition
  • this and Arrow Functions
  • Async Programming, async await & Promises, Yield
  • Transpiling ES.Next modules using Babel

Node.js, Tooling & Project Setup
  • Node.js Role in modern Web Development
  • Node Package Manager npm
  • Bundling with WebPack
  • Scaffolding React Projects
  • Using Visual Studio Code & Extensions

React Basics
  • What is React? 
  • JSX and Declarative Development
  • Virtual DOM
  • Functional Components & Hooks
  • Using Props, Children, Render Props, Events
  • Using Iterations and repeating Structures (Tables, Lists, ..)
  • State & Immutability
  • Using Classes to implement Components
  • Lifecycle Methods in Classes
  • Handling Events in Classes and using this binding
  • Rebuild from Classes to Functional Components
  • Debugging React Components
  • Using CSS, SaSS, JSS
  • Higher Order Components

Common UI Frameworks used with React
  • Using Bootstrap & Material UI
  • React based Frameworks (Gatsby, NextJS)

Using React & TypeScript 
  • Why using TypeScript
  • Setting up a Project for React using TypeScript
  • Using Types and Interfaces in React
  • React Sample in TypeScript

Components in Depth
  • Statefull vs Stateless Components
  • Container vs Presentation Components vs Hooks
  • Understanding & using Component Lifecycle with Hooks
  • Understanding how React Updates the DOM
  • Functional Components and Hooks in Depth
  • Build your own hooks
  • Profiling Components
  • “Lightweight” Redux with useReducer Hook
  • Building performant Very Long List Components

Implementing React Forms
  • Populating Forms
  • Form Validation & Error Messages
  • Different Form Frameworks (React Forms, Formik, Yup)
  • Building a Reactive User Interface

State Management using RxJS and Hooks
  • Observables and Subjects
  • Using Subscriptions
  • RxJS Operators
  • Working with the Service Pattern

State Management using Redux
  • Redux Big Picture
  • Connecting React to Redux
  • Implementing Store & Reducers
  • Combining Reducers
  • Dispatching Actions 
  • Ducks Pattern
  • Passing Data with Actions
  • Updating State & Handling Immutability
  • Forms and Redux
  • Thunks & Sagas

React Routing
  • Routing Basics
  • Passing Information using Params and Querystrings
  • Using Links, Redirects, Transitions & Locations
  • Programmatic Navigation
  • Nested Routes

Consuming REST APIs
  • Http Requests Overview
  • Execute & Render GET Requests
  • Implementing Save, Updates & Deletes
  • Axios / Fetch

Implementing Authentication
  • Authentication in SPA’s Overview
  • Configuring Token Based Authentication

Testing
  • Testing Frameworks (JEST)
  • Assertion Libraries (Enzyme, React Testing Library)
  • Testing React & Redux
  • End to End Testing (Cypress)

Publishing
  • Production Builds
  • Hosting React Applications 
  • Publishing React Application
  • Server Side Rendering Example with Routes
Ziele
Im Seminar „smart Implementing Reactive Web Apps using React and Redux ” lernen Sie moderne Web Applikationen zu erstellen. Hands On vertiefen wir unsere Kenntnisse, um schließlich alle Teile des React Eco-Systems, inklusive Profiling, Testing, Deployment, Security und TypeScript zu behandeln. Zusätzlich werden React basierte Frameworks und deren Einsatz genauso besprochen wie die in React eingesetzten modernsten Javascript Features. 
Im Workshop wird ein Beispiel iterativ aufgebaut und unter Einsatz des Profilers verbessert um optimale Ergebnisse zu erzielen.

Nach Abschluss dieses Seminars haben die Teilnehmer*innen Kenntnisse zu folgenden Themen:
  • Modern JavaScript (ES6 - ES.Next) Features used in React
  • Node.js, Tooling & Project Setup
  • React Basics
  • Components in Depth
  • Implementing Forms
  • Controlled Components
  • State Management in React and Redux
  • React Routing
  • Consuming REST APIs
  • Declarative vs. Imperative Development
  • Implementing Authentication
  • Testing React and Redux
  • React based Frameworks
  • Publishing React
Voraussetzungen