Web Development with React and Redux

Web Mobile JavaScript

Want to build performant maintainable web and mobile applications using modern JavaScript? This course teaches you how to utilize the popular React/Redux stack and other useful tools to build web applications, focusing on how to approach problems in a functional and declarative style.

React introduces a new way of thinking when it comes to building user interfaces in JavaScript. Together with Redux as the application state container you can start to leverage some of the powers of functional programming without any former experience in the field.

This course has a mix of about 50/50 theory and practice. We'll solve a lot of exercises, and also build a complete project from scratch, so that you'll have working knowledge of every part of your application.

Course Outline:

Part 1:

  • Functional JavaScript
  • JavaScript «this» and gotchas
  • Modern JavaScript (ES2015/ES2016) and Babel

Part 2:

  • Why React?
  • React Basics
  • Debugging
  • JSX
  • Props and state
  • Component lifecycle
  • Higher order components and mixins
  • Transitions
  • Forms

Part 3:

  • Routing
  • Testing
  • Unidirectional data flow
  • Redux
  • Webpack

Part 4:

  • Building a project from scratch

Who should attend:

Developers who want to to build performant web/mobile applications that are easy to maintain and reason about.

Computer setup:

  • Install nodejs 6.X.X
  • Install chrome and/or firefox
  • Install atom or sublime-text (or your favorite editor/IDE with syntax support for JSX/ES2015)
  • If you're using windows, follow this guide: https://github.com/Microsoft/nodejs-guidelines

Pre-requisites:

Knowledge of JavaScript and HTML.

Tid

09:00 - 16:15

Emner

Introduction

JSX

Component lifecycle

Data flow

Event handling

Composing components

Mixins

DOM manipulation

Forms

Animations

Performance tuning

Universal rendering

Development tools

Testing

Architectural patterns

Mobile app development

Tilleggsinfo

For the mobile app development part a Mac/Macbook with OS X and Xcode installed is required.