Workshop: Modern Frontend with React.js

Want to learn how to build modern JavaScript applications with maintainable and elegant state management, control flow and testing?

JavaScript is continuing to manifest its role as the language of the web, where React has become a workhorse of frontend development. With React we can build component based applications that can target anything from the browser to native mobile devices.

In this course we’ll build an application from scratch, where we’ll go through the different necessary parts of a modern application, like composing views, managing state, handling control flow and communicating with external data sources.

Learn how to:

  • «Think in React»
  • Build composable component based views
  • Manage state using pure functions
  • Manage control flow to make you application do what you want, when you want it
  • Communicate with your backend and APIs
  • Test the different parts of your application
  • Leverage new React features like hooks and context to simplify your application

Some of the tech we’ll look at:

  • react
  • react-router
  • redux
  • redux-thunk
  • axios

Topics Day 1:

  • Introduction to React
  • Component, lifecycle and events
  • Higher order components
  • Dynamic forms and input handling

Topics Day 2:

  • State management with redux
  • Control flow and asynchronous code with async / await
  • Testing with Jasmine
  • Routing
  • Structuring frontend applications and other challenges

Any developer that wants to build modern JavaScript applications that can target multiple platforms using one of the most popular frameworks.

You should ideally have some experience with JavaScript, as we won’t spend too much time on the language itself. You should also be familiar with HTML and DOM. Prior experience with a JavaScript framework/library is helpful but not essential.

Computer Setup:
Attendees will need a laptop with the following installed:

  • IDE / text editor of choice (like Atom/VSCode/IDEA)
  • console with access to git
  • node.js >= 8.x