We may earn an affiliate commission when you visit our partners.
Angular University

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.

Read more

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

Enroll now

What's inside

Learning objectives

  • Code in github repository with downloadable zip files per section
  • Become familiar with the centralized store pattern, and how to use it in angular
  • Know when to use a centralized store solution and why
  • Learn how to use ngrx data to handle entity data with minimal code
  • Learn in-depth ngrx store, understand in detail all core store patterns, including reducers and actions
  • Learn in detail ngrx effects, learn when to use a side-effect
  • Learn in detail ngrx entity, when to use and why, learn what are the benefits
  • Transform step-by-step an existing angular plain application, and turn it into a store based application
  • Learn to implement common functionality in ngrx, such as authentication or entity pagination
  • Learn ngrx in-depth in a fun and practical way, by implementing real use cases

Syllabus

Introduction
NgRx (with NgRx Data) - Helicopter View
IMPORTANT - Recommended Software Versions
NgRx The Complete Guide - Development Environment Setup
Read more
The Typescript Jumpstart Ebook
What is NgRx, Why State Management and what are the benefits?
Installing NgRx and the NgRx DevTools
NgRx Key Concepts - Actions and Reducers
Configuring an NgRx Feature Module using NgRx Schematics
The Store Service API - Implementing the Login Screen
Defining NgRx Actions using Action Creators
Grouping Actions Together with Action Types
NgRx Reducers - Step-by-Step Implementation
Key Concepts Summary - NgRx Actions and Reducers In Action
NgRx Key Concepts - Selectors and Effects
How to Query the Store Data - An Example
NgRx Selectors - An In-Depth Explanation
NgRx Feature Selectors - a Simple Explanation
Implementing User Logout (Practice Lesson )
Implementing a Router Authentication Guard (Practice Lesson)
Introduction to NgRx Effects - What is a Side Effect?
Understanding NgRx Effects - A Simple Example
NgRx Effects - Step-by-Step Implementation
Implementing the Logout Effect (Practice Lesson)
NgRx Development Tools In Depth
Setting up NgRx Router Store and the Time-Travelling Debugger
NgRx Runtime Checks - How do they work?
NgRx Metareducers - Step-by-Step Implementation
NgRx Entity In Depth
NgRx Entity - Section Kickoff
NgRx Feature Design - Defining Actions First
Loading NgRx Entity Data using a Router Resolver
NgRx Effects - Fetching Data From the Backend
Understanding the NgRx Entity Format
Implementing Reducers Using the NgRx Entity Adapter
NgRx Entity Selectors - Refactoring the Home Component
Entity Adapter Configuration - Understanding sortComparer and selectId
NgRx Data Fetching Solution - How to Load Data Only If Needed
Optimistically Editing Entity Data - The Edit Course Dialog
Optimistic Data Editing - Reducer Implementation and Demo
Optimistic Data Editing - Saving Data in the background with an Effect
NgRx Data In Depth
Why NgRx Data? New Section Introduction
Setting Up NgRx Data in a Lazy Loaded Module
How Does NgRx Data Work? Transparent Fetching Data In Action
NgRx Custom Data Service - Fetching Data From the Backend
Controlling Data Loading with the NgRx Data loaded flag
Querying Store Data with NgRx Data and the entities$ Observable
NgRx Data CRUD - Why use Optimistic Updates?
NgRx Data CRUD - Why Pessimistic Data Creation?
NgRx Data CRUD - Optimistic Delete Implementation
Setting Up a new Entity - The Lesson Entity
Implementing the Course Component Using NgRx Data
Lessons Pagination using NgRx Data
Switching an NgRx Application to OnPush Change Detection
Course Conclusion
Bonus Lecture (Updated February 2025)
Angular NgRx Course Conclusion

Save this course

Save NgRx (with NgRx Data) - The Complete Guide (Angular 19) to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in NgRx (with NgRx Data) - The Complete Guide (Angular 19) with these activities:
Review RxJS Observables
Reviewing RxJS Observables will help you better understand the asynchronous data streams that NgRx uses extensively.
Browse courses on Observables
Show steps
  • Read the official RxJS documentation on Observables.
  • Practice creating and subscribing to Observables.
  • Experiment with different RxJS operators.
Read 'Enterprise Angular Monorepo Patterns'
Reading this book will provide a broader understanding of application architecture, which is essential for effective NgRx implementation.
View Alter Ego on Amazon
Show steps
  • Read the book cover to cover.
  • Take notes on key concepts and patterns.
  • Relate the concepts to your current Angular projects.
Build a Simple CRUD Application with NgRx Data
Building a CRUD application will solidify your understanding of NgRx Data and how it simplifies entity state management.
Show steps
  • Set up a new Angular project with NgRx and NgRx Data.
  • Define the entity and its corresponding data service.
  • Implement the CRUD operations using NgRx Data.
  • Create a UI to interact with the data.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Read 'Angular Development with NgRx'
Reading this book will provide a solid foundation in NgRx and help you build more robust and maintainable Angular applications.
View Alter Ego on Amazon
Show steps
  • Read the book cover to cover.
  • Work through the examples in the book.
  • Experiment with different NgRx patterns and techniques.
Write a Blog Post on NgRx Best Practices
Writing a blog post will force you to synthesize your knowledge of NgRx best practices and communicate them effectively.
Show steps
  • Research NgRx best practices from various sources.
  • Outline the key points you want to cover.
  • Write the blog post with clear examples and explanations.
  • Edit and proofread your post before publishing.
Contribute to an Open Source NgRx Project
Contributing to open source will expose you to real-world NgRx implementations and help you learn from experienced developers.
Show steps
  • Find an open-source Angular project that uses NgRx.
  • Identify an issue or feature you can contribute to.
  • Fork the repository and create a new branch.
  • Implement the changes and submit a pull request.
Help others on Stack Overflow
Helping others will reinforce your understanding of NgRx and expose you to different problem-solving approaches.
Show steps
  • Search for NgRx-related questions on Stack Overflow.
  • Provide clear and concise answers to the questions.
  • Explain your reasoning and provide code examples.

Career center

Learners who complete NgRx (with NgRx Data) - The Complete Guide (Angular 19) will develop knowledge and skills that may be useful to these careers:

Reading list

We've selected one books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in NgRx (with NgRx Data) - The Complete Guide (Angular 19).
Provides valuable insights into structuring large Angular applications, which is crucial when using NgRx for state management. It covers monorepo strategies, which are often used in conjunction with NgRx to manage complex application state. The book helps in understanding how to organize code effectively and maintain scalability. It useful reference for designing robust and maintainable Angular applications with NgRx.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser