Skip to main content
CF

NgRx (with NgRx Data) - The Complete Guide (FREE E-Book)

6h 11m 19s
English
Paid

This course is a complete guide to the new NgRx Ecosystem, including NgRx Data, Store, Effects, Router Store, NgRx Entity, and DevTools, and comes with a running Github repo.

This Course in a Nutshell

State management is the number one topic to know when it comes to frontend architecture design choices. Why choose to do state management in a single page application, when to do it and why, what are the benefits, and what are tradeoffs?

These are all critical questions that we will address in this course, as we give you an extended guided tour of the NgRx Ecosystem.

The most popular state management library in the Angular space is NgRx, and for good reasons. The latest release of NgRx is probably one of the most important releases in the whole Angular ecosystem recently. Although backward compatible, it contains so much new functionality that it's almost a brand new state management library.

Under the hood, the core concepts of Actions, Reducers, Effects, Entities, and Selectors remain the same, but we have now a brand new API for managing these concepts in a much less verbose way. Also, we have the inclusion of NgRx Data, which is a new and very powerful way of managing Entity Data.

Actually, NgRx Data is a powerful abstraction layer on top of NgRx, that allows us to add state management to large parts of our application without having to write much code at all!

Course Overview

In this course, we are going to take a small existing application that is built without any state management. We are going to understand what are the consequences of not doing state management by identifying some problems that the application has in its initial form.

Then we are going to start refactoring the application, and we are going to add state management to the application multiple screens step-by-step. We are going to start with the Authentication features of the application, and then we are going to move on to the entity data management part.

We are going to explain at length all the key concepts of NgRx: Actions, Reducers, Effects, and Selectors, and we are going to explain in detail the Store architecture itself and understand its benefits.

Throughout the course we are going to introduce step-by-step and explain in detail the NgRx Store module, NgRx Effects, we are going to cover in detail NgRx Entity and the Entity format, we are going to install and do a guided tour of the NgRx Dev Tools, the NgRx Router Store, and the time-travelling debugger.

We are also going to learn how to make the most out of NgRx Data, and learn how to customize it in order to manage entity data with minimal application code. We will cover NgRx while keeping in mind best practices like good Action hygiene.

Table of Contents

This course covers the following topics:

  • Introduction to State Management

  • The Store Architecture In Detail

  • NgRx Key Concepts

  • Actions and Action Creators

  • Reducers

  • NgRx Effects

  • Selectors

  • Adding Authentication to an NgRx Application

  • NgRx Entity and the Entity Format

  • NgRx DevTools

  • NgRx Time Travelling Debugger

  • NgRx Runtime checks and Store Immutability

  • NgRx Router Store

  • NgRx Data and Entity State Management

  • NgRx Best Practices

What Will You Learn In this Course?

At the end of this course, you will feel comfortable with the notions of state management and the centralized store solution in general.

You will feel comfortable designing new Applications using NgRx, using a simple methodology and you will know in-depth the complete Ngrx library ecosystem: including the Ngrx Store, Effects, Entity, and NgRx Data libraries.

You will know how to quickly scaffold parts of the solution using Ngrx Schematics, and how to set up the Ngrx DevTools from scratch, including the router integration.

About the Author: Udemy

Udemy thumbnail

Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.

Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.

Watch Online 48 lessons

This is a demo lesson (10:00 remaining)

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

View Pricing
0:00
/
#1: NgRx (with NgRx Data) - Helicopter View
All Course Lessons (48)
#Lesson TitleDurationAccess
1
NgRx (with NgRx Data) - Helicopter View Demo
06:37
2
NgRx The Complete Guide - Development Environment Setup
08:04
3
What is NgRx, Why State Management and what are the benefits?
11:47
4
Installing NgRx and the NgRx DevTools
07:13
5
Configuring an NgRx Feature Module using NgRx Schematics
08:17
6
The Store Service API - Implementing the Login Screen
07:29
7
Defining NgRx Actions using Action Creators
11:10
8
Grouping Actions Together with Action Types
03:45
9
NgRx Reducers - Step-by-Step Implementation
08:56
10
Key Concepts Summary - NgRx Actions and Reducers In Action
06:01
11
How to Query the Store Data - An Example
12:38
12
NgRx Selectors - An In-Depth Explanation
12:01
13
NgRx Feature Selectors - a Simple Explanation
04:56
14
Implementing User Logout (Practice Lesson )
04:31
15
Implementing a Router Authentication Guard (Practice Lesson)
08:13
16
Introduction to NgRx Effects - What is a Side Effect?
05:50
17
Understanding NgRx Effects - A Simple Example
07:17
18
NgRx Effects - Step-by-Step Implementation
08:39
19
Implementing the Logout Effect (Practice Lesson)
06:53
20
Setting up NgRx Router Store and the Time-Travelling Debugger
10:34
21
NgRx Runtime Checks - How do they work?
08:31
22
NgRx Metareducers - Step-by-Step Implementation
06:50
23
NgRx Entity - Section Kickoff
03:36
24
NgRx Feature Design - Defining Actions First
06:08
25
Loading NgRx Entity Data using a Router Resolver
10:18
26
NgRx Effects - Fetching Data From the Backend
06:57
27
Understanding the NgRx Entity Format
05:54
28
Implementing Reducers Using the NgRx Entity Adapter
08:12
29
NgRx Entity Selectors - Refactoring the Home Component
10:08
30
Entity Adapter Configuration - Understanding sortComparer and selectId
04:26
31
NgRx Data Fetching Solution - How to Load Data Only If Needed
10:34
32
Optimistically Editing Entity Data - The Edit Course Dialog
10:43
33
Optimistic Data Editing - Reducer Implementation and Demo
04:07
34
Optimistic Data Editing - Saving Data in the background with an Effect
06:01
35
Why NgRx Data? New Section Introduction
05:54
36
Setting Up NgRx Data in a Lazy Loaded Module
08:24
37
How Does NgRx Data Work? Transparent Fetching Data In Action
09:12
38
NgRx Custom Data Service - Fetching Data From the Backend
11:21
39
Controlling Data Loading with the NgRx Data loaded flag
05:19
40
Querying Store Data with NgRx Data and the entities$ Observable
08:17
41
NgRx Data CRUD - Why use Optimistic Updates?
13:23
42
NgRx Data CRUD - Why Pessimistic Data Creation?
06:44
43
NgRx Data CRUD - Optimistic Delete Implementation
07:09
44
Setting Up a new Entity - The Lesson Entity
03:43
45
Implementing the Course Component Using NgRx Data
05:16
46
Lessons Pagination using NgRx Data
12:13
47
Switching an NgRx Application to OnPush Change Detection
06:39
48
Angular NgRx Course Conclusion
04:29
Unlock unlimited learning

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

Learn more about subscription

Related courses

Frequently asked questions

What prerequisites should I have before taking this course?
Before enrolling in this course, you should be familiar with Angular as NgRx is a state management solution for Angular applications. Basic knowledge of JavaScript, TypeScript, and reactive programming with RxJS would also be beneficial since the course involves concepts such as Actions, Reducers, and Effects which leverage these technologies.
What projects will I build during the course?
Throughout the course, you will implement various features using NgRx. For example, you will build a login screen using the Store Service API, implement user logout as a practice lesson, and create a course component using NgRx Data. These projects help solidify the concepts of state management in Angular applications using NgRx.
Who is the target audience for this course?
This course is aimed at developers who are looking to implement state management in their Angular applications. It is particularly useful for those who want to understand and leverage the full NgRx ecosystem, including NgRx Data, Store, Effects, Router Store, and Entity.
How does this course compare in depth and scope to other state management courses?
This course provides a comprehensive exploration of the NgRx ecosystem. It covers not only the fundamentals such as Store, Actions, and Reducers but also more advanced topics like NgRx Data, Entity, Effects, and Router Store. This makes it suitable for developers seeking a thorough understanding of state management in Angular applications.
Which tools and platforms will I learn to use in this course?
The course covers a range of tools within the NgRx ecosystem. You will learn to configure NgRx Feature Modules using NgRx Schematics, utilize NgRx DevTools for debugging, and implement NgRx Data for efficient data handling. The course also includes the use of the Time-Traveling Debugger to manage application state over time.
What topics are not covered in this course?
The course focuses exclusively on the NgRx ecosystem and does not cover other state management solutions such as Redux Toolkit or MobX. Additionally, it does not delve into Angular-specific topics unrelated to state management, such as Angular Material or Angular Universal.
How can the knowledge gained in this course apply to my career?
Mastering NgRx can significantly enhance your ability to build scalable and maintainable Angular applications. This skill is valuable for front-end developers aiming to work on complex applications that require robust state management solutions. Understanding the full NgRx ecosystem can also be a stepping stone to mastering similar state management patterns in other frameworks.