Skip to main content

Reactive Angular Course (with RxJs)

5h 33m 49s
English
Paid

Course description

This course is a catalog of commonly used design patterns (and some anti-patterns) that every Angular developer should know. The goal of the course is to teach you how to comfortably design and develop applications in Angular in Reactive style using just plain RxJs, and nothing more. This course comes with a running Github repository with the the finished code, as well as starting points for different sections of the course in case that you want to code along, which we recommend as its the best way to learn.

Read more about the course

This course answers the common question: how far can we go in Angular while using only plain RxJs and nothing more, without introducing any state management library?

It turns out that the simple set of techniques taught in this course are very well suited for a wide range of applications, especially in-house built enterprise applications.

In this course, you will learn exactly how to use RxJs to design and develop both the service and the view layers of your application, and you will understand both the advantages and the pitfalls of the reactive approach.

Particularly when it comes to state management, it turns out that we can already go very far by leveraging only plain Angular and RxJs techniques, without using an additional state management library like for example NgRx.

These simplified state management techniques are adequate and sufficient for a large range of applications,  and we believe that you should consider them first before thinking of adopting a full-blown state management solution.

How far can you go with these techniques? That's what you will find out in this course.

Course Overview

We are going to start our course by taking a small Angular application that is written in imperative style, and we are going to talk about some of the problems of that approach. Then, we are going to refactor the application and explain step-by-step how to implement it in reactive style instead.

We will explain in detail every RxJs operator that we come across in this course, the first time that we need each operator.

We are going to start with a fully stateless solution first, but later we are going to improve the user experience by applying some simple RxJs-only state management techniques. We are going to use these patterns in order to handle some of the data of the application, as well as the user authentication profile.

The key element needed to implement lightweight state management is RxJs behavior subjects so we will cover those in detail in the course. We will also provide step-by-step reactive style solutions for common UI functionality like loading indicators or error messages.

Table of Contents

This course covers the following topics:

  • Review of an application written in imperative style

  • Refactoring into stateless reactive style, understanding the benefits

  • Smart vs Presentational Components

  • Stateless Observable Services

  • The shareReplay Operator

  • Stateless UI updates (without state management)

  • Introduction to RxJs Subjects and BehaviorSubject

  • Decoupled component communication using shared observable services

  • Using Observables to have components interact at different levels of the component tree

  • Error Handling and error messages in reactive style

  • Loading Indicators in reactive style

  • Improving user experience with lightweight RxJs stores

  • Optimistic UI updates

  • Managing User Authentication state with plain RxJs

  • Local vs Global Services

  • Master Detail with cached master table in reactive style

  • The Single Data Observable Pattern: Avoiding nested ng-component tags

  • Refactoring a reactive application to OnPush change detection

  • Conclusion and key takeaways

What Will You Learn In this Course?

At the end of the course, you will feel comfortable designing and developing Angular applications in reactive style, by leveraging plain RxJs-only techniques. You will know how to apply simplified reactive state management techniques to different common use cases, and you will understand the advantages and the limitations of this approach.

You will be familiar with a series of commonly needed reactive design patterns, and you will also be familiar with a series of common pitfalls to avoid.

Requirements:
  • Angular (beginner level)
  • Typescript
  • Some basics of RxJs
Who this course is for:
  • Web developers looking to learn how to build Angular Applications in Reactive Style
  • Angular Developers looking to learn lightweight state management techniques (using RxJs only)

What you'll learn:

  • Code in Github repository with downloadable ZIP files per section
  • Learn Lightweight State Management techniques (RxJs only)
  • Understand the Core Principles of Reactive Programming in general
  • Know how to build Applications in Angular in Reactive Style using RxJs
  • Learn a Catalog of RxJs Application Design Patterns and Anti-Patterns

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 39 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Reactive Angular Course (with RxJs)

0:00
/
#1: Reactive Angular Course - Helicopter View

All Course Lessons (39)

#Lesson TitleDurationAccess
1
Reactive Angular Course - Helicopter View Demo
07:32
2
Setting Up your Development Environment
08:07
3
Reviewing a component written in traditional Imperative Style
08:57
4
Understanding potential problems of a program written in Imperative style
05:20
5
Design Pattern - Stateless Observable-based Services
09:03
6
Consuming Observable-based services using the Angular async Pipe
12:19
7
Avoiding Angular duplicate HTTP requests with the RxJs shareReplay operator
08:39
8
Angular view Layer Patterns - Smart vs Presentational Components
10:14
9
Data Modification Example in Reactive Style (Stateless Application)
13:50
10
Reactive Component Interaction - Section Introduction
04:27
11
Decoupled component communication using a shared Service
07:50
12
Loading Service Reactive API Design
07:08
13
Reactive Component Interaction using Custom Observables and Behavior Subject
12:23
14
Loading Indication Service - Reactive Implementation Finished
08:29
15
Understanding the Angular Component providers property
13:26
16
Error Handling and the Messages Component
05:11
17
Error Handling with the catchError RxJs operator
07:21
18
Messages Service - Implementation Finished and Demo
12:13
19
Local Error Handling in an Angular Material Dialog
10:30
20
Angular State Management - When is it Needed and Why?
07:31
21
Initial Implementation of a Store Service
09:06
22
Step-by-Step Implementation of an Angular Store Service
11:31
23
Store Optimistic Data Modification Operations - API Design
07:53
24
Store Optimistic Data Modifications - Step-By-Step Implementation
13:59
25
Authentication State Management - Section Introduction
05:50
26
Authentication Store - Step-By-Step Implementation
07:31
27
Adapting the UI according to the user Authentication status
08:26
28
Authentication Store - Browser Refresh support with Local Storage
08:44
29
Master-Detail UI Pattern - Section Introduction
04:49
30
Angular Master Detail Implementation - The Master Table
08:02
31
Angular Master Detail Implementation - The Detail Element
04:18
32
Angular Master Detail Implementation - Final Demo
08:05
33
Consolidation Exercise - Implementing the Course Screen in Reactive Style
06:56
34
Course Component Finished - Introduction to the Single Data Observable Pattern
04:38
35
Reactive Angular - The Single Data Observable Pattern
10:48
36
Single Data Observable Pattern - Default Data Values
08:18
37
Refactoring an Angular Reactive Application to OnPush Change Detection
07:29
38
Other Courses
02:18
39
Conclusion & Key Takeaways
14:38

Unlock unlimited learning

Get instant access to all 38 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

100 Angular Challenge

100 Angular Challenge

Sources: udemy
Build 100 Components, Services, Directives, Pipes in Angular and Much More! We will master all Angular has to offer by building 100 re-usable and practical Components, Directive...
12 hours 23 minutes 17 seconds
Angular - The Complete Guide

Angular - The Complete Guide

Sources: Academind Pro
Angular is one of the most popular web development frameworks you can learn these days - especially in the enterprise landscape. It offers amazing...
26 hours 25 minutes 26 seconds
PROFESSIONAL Full Stack Developer

PROFESSIONAL Full Stack Developer

Sources: Amigoscode (Nelson Djalo)
Are you ready to level up your coding skills and become a full stack professional? Our new 50+ hours course is designed to equip you with the latest tools and techniques to buil...
54 hours 23 minutes 35 seconds
Complete Angular Developer in 2023 Zero to Mastery

Complete Angular Developer in 2023 Zero to Mastery

Sources: zerotomastery.io
Learn Angular from a senior industry professional. This is the only Angular course you need to learn Angular, build enterprise-level applications from scratch & get hired as an ...
27 hours 28 minutes 36 seconds