Table of Contents Introduction What is NgRx? What does it solve? Why use NgRx? Fundamentals 3 Principles of Redux NgRx Architecture Actions Reducers Store Effects Simple Store Create Store Class Sidenav Actions Sidenav reducer Create Store Instance Dispatch Actions and Subscribe to State Resorts JSON Server Resorts Actions Update Reducer with Resort Actions Support Side Effects Show List of Ski Resorts Store Getting Started State Module Sidenav Actions Sidenav Reducer Sidenav Selectors Sidenav Select Sidenav Dispatch Exercise: Map Zoom Effects Getting Started Feature Story Resort Actions Resort Reducer Resort Selectors Resort Effects Resort Select Resort Dispatch Select a Resort Exercise 1: Dialog Exercise 2: Close Dialog and Set Zoom Entity Library Getting Started Entity Adapter Collection Methods Entity Selectors Exercise: Delete Entity Testing Jest Test Sidenav Reducer Exercise 1: Test Reducers Marble Testing Test Component Exercise 2: Test Components Test Effects Exercise 3: Test Effects Schematics