SlideShare a Scribd company logo
@simona_cotin
State management
with ngRx
@simona_cotin
@simona_cotin
Simona Cotin
Cloud Dev Advocate @ Microsoft
@simona_cotin
@simona_cotin
ngRx
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
✓ Recognise
✓ Make decisions faster
✓ Comfort
@simona_cotin
State
management
@simona_cotin
A day in the life of a component
✓Initialize state
✓Request data from the server
✓Update state to reflect server
data
✓React to events that change
the state
✓Update state to reflect user
interaction
✓Receive state updates from
other components 😱
✓…
@simona_cotin
And this is fine!
@simona_cotin
When you work in
a small team
@simona_cotin
And have a small
number of components
that are not
communicating heavily
@simona_cotin
But..what happens
when you’re
building a large
application?
@simona_cotin
@simona_cotin
@simona_cotin
Component
✓Render itself
✓Initialize state
✓Request data from the server
✓Update state to reflect server
data
✓React to events that change
the state
✓Update state to reflect user
interaction
✓Receive state updates from
other components 😱
✓…
@simona_cotin
Smart Component
Component
Presentation
Component
Input
Output
@simona_cotin
How things work?
Component
Presentation
Component
Input
Output
@simona_cotin
How things work?
Component
How things look?
Input
Output
@simona_cotin
😼😼😼
@simona_cotin
@simona_cotin
We call that the
store
How to get state
from the store?
Component
How to get state from the store?
store.select('counter')
How to change state?
@simona_cotin
Component
Reducer
Action
State
How to change state?
@simona_cotinPhoto by Sam Burriss on Unsplash
@simona_cotin– https://redux.js.org
“Redux is a
predictable state
container for
JavaScript apps.”
@simona_cotin
Redux
Single source of truth
Read-only state
Pure functions
@simona_cotin
Single State Tree{
visibilityFilter: 'SHOW_ALL',
todos: [
{
text: 'Consider using Redux',
completed: true,
},
{
text: 'Keep all state in a single tree',
completed: false
}
]
}
@simona_cotin
Actions
const action = {
type: 'ADD_TODO',
payload: 'learn ngRx'
}
@simona_cotin
const reducer = (state = [], action) => {
switch (action.type) {
case 'ADD_TODO':
return [...state, action.payload];
default:
return state;
}
};
Reducer
s
@simona_cotin
WIIFM (What’s In It For
Me?)
✓ Patterns 🤩❤️😎
✓ Centralised state
✓ Testability
✓ Tooling and ecosystem
@simona_cotin
–you
“What about
angular?”
@simona_cotin
ngRx
@simona_cotin
A collection of libraries
that help with state
management in
angular
@simona_cotin
@simona_cotin
WIIFM? 🤩🤩
✓ Patterns 🤩❤️😎
✓ Single source of truth/centralised state
✓ Testability
✓ Tooling
@simona_cotin
@simona_cotin
Demo
@simona_cotin
Common use cases
✓ Trading apps
✓ Network data monitoring
✓ Wizard like apps
@simona_cotin
This is also OK 🤩
@simona_cotin
–Victor Savkin
“Careful thinking
cannot be
replaced by a
library.”
@simona_cotin
Tools to consider
@simona_cotin
Happy thoughts
• Simpler state management
• Testability
• Tooling
• 😍 Time travel debugging
@simona_cotin
Thank you
@MarkPieszak@elmd_

More Related Content

Similar to State management with ngRX

Cloudy with a Chance of Performance (NZ Tech Day - Presentation 6)
Cloudy with a Chance of Performance (NZ Tech Day - Presentation 6)Cloudy with a Chance of Performance (NZ Tech Day - Presentation 6)
Cloudy with a Chance of Performance (NZ Tech Day - Presentation 6)
planittesting
 
Denver MuleSoft Meetup: Greatest MuleSoft Hits of 2022
Denver MuleSoft Meetup: Greatest MuleSoft Hits of 2022Denver MuleSoft Meetup: Greatest MuleSoft Hits of 2022
Denver MuleSoft Meetup: Greatest MuleSoft Hits of 2022
Big Compass
 
Hyperion financial management: Application design for performance
Hyperion financial management: Application design for performanceHyperion financial management: Application design for performance
Hyperion financial management: Application design for performance
Alithya
 
Talend Summer 16 launch présentation: Open Data Preparation for Everyone
Talend Summer 16 launch présentation: Open Data Preparation for Everyone Talend Summer 16 launch présentation: Open Data Preparation for Everyone
Talend Summer 16 launch présentation: Open Data Preparation for Everyone
Jean-Michel Franco
 
Turning the web stack upside down rethinking how data flows through systems
Turning the web stack upside down  rethinking how data flows through systemsTurning the web stack upside down  rethinking how data flows through systems
Turning the web stack upside down rethinking how data flows through systems
Paolo Negri
 
Introduction to Chaos Engineering | SRECon Asia - Ana Medina
Introduction to Chaos Engineering | SRECon Asia - Ana MedinaIntroduction to Chaos Engineering | SRECon Asia - Ana Medina
Introduction to Chaos Engineering | SRECon Asia - Ana Medina
Ana Medina
 
Projects
ProjectsProjects
Automating Everything with FME
Automating Everything with FMEAutomating Everything with FME
Automating Everything with FME
Safe Software
 

Similar to State management with ngRX (8)

Cloudy with a Chance of Performance (NZ Tech Day - Presentation 6)
Cloudy with a Chance of Performance (NZ Tech Day - Presentation 6)Cloudy with a Chance of Performance (NZ Tech Day - Presentation 6)
Cloudy with a Chance of Performance (NZ Tech Day - Presentation 6)
 
Denver MuleSoft Meetup: Greatest MuleSoft Hits of 2022
Denver MuleSoft Meetup: Greatest MuleSoft Hits of 2022Denver MuleSoft Meetup: Greatest MuleSoft Hits of 2022
Denver MuleSoft Meetup: Greatest MuleSoft Hits of 2022
 
Hyperion financial management: Application design for performance
Hyperion financial management: Application design for performanceHyperion financial management: Application design for performance
Hyperion financial management: Application design for performance
 
Talend Summer 16 launch présentation: Open Data Preparation for Everyone
Talend Summer 16 launch présentation: Open Data Preparation for Everyone Talend Summer 16 launch présentation: Open Data Preparation for Everyone
Talend Summer 16 launch présentation: Open Data Preparation for Everyone
 
Turning the web stack upside down rethinking how data flows through systems
Turning the web stack upside down  rethinking how data flows through systemsTurning the web stack upside down  rethinking how data flows through systems
Turning the web stack upside down rethinking how data flows through systems
 
Introduction to Chaos Engineering | SRECon Asia - Ana Medina
Introduction to Chaos Engineering | SRECon Asia - Ana MedinaIntroduction to Chaos Engineering | SRECon Asia - Ana Medina
Introduction to Chaos Engineering | SRECon Asia - Ana Medina
 
Projects
ProjectsProjects
Projects
 
Automating Everything with FME
Automating Everything with FMEAutomating Everything with FME
Automating Everything with FME
 

More from Simona Cotin

Tips and tricks on how to stand out with your bio and talk abstract
Tips and tricks on how to stand out with your bio and talk abstractTips and tricks on how to stand out with your bio and talk abstract
Tips and tricks on how to stand out with your bio and talk abstract
Simona Cotin
 
Serverless at the end of the Universe
Serverless at the end of the UniverseServerless at the end of the Universe
Serverless at the end of the Universe
Simona Cotin
 
Tech Roadmap
Tech RoadmapTech Roadmap
Tech Roadmap
Simona Cotin
 
Build scalable APIs using GraphQL and Serverless
Build scalable APIs using GraphQL and ServerlessBuild scalable APIs using GraphQL and Serverless
Build scalable APIs using GraphQL and Serverless
Simona Cotin
 
Pwa, are we there yet?!
Pwa, are we there yet?!Pwa, are we there yet?!
Pwa, are we there yet?!
Simona Cotin
 
Intro GraphQL
Intro GraphQLIntro GraphQL
Intro GraphQL
Simona Cotin
 
Build Nodejs APIs using Serverless
Build Nodejs APIs  using Serverless Build Nodejs APIs  using Serverless
Build Nodejs APIs using Serverless
Simona Cotin
 
PWAs, are we there yet?!
PWAs, are we there yet?!PWAs, are we there yet?!
PWAs, are we there yet?!
Simona Cotin
 
Doppelganger - ng-conf
Doppelganger - ng-confDoppelganger - ng-conf
Doppelganger - ng-conf
Simona Cotin
 
Hop on the serverless adventure - International Javascript London
Hop on the serverless adventure - International Javascript LondonHop on the serverless adventure - International Javascript London
Hop on the serverless adventure - International Javascript London
Simona Cotin
 
Build progressive web apps with Angular
Build progressive web apps with AngularBuild progressive web apps with Angular
Build progressive web apps with Angular
Simona Cotin
 
Deploy Angular to the Cloud (ngBucharest)
Deploy Angular to the Cloud (ngBucharest)Deploy Angular to the Cloud (ngBucharest)
Deploy Angular to the Cloud (ngBucharest)
Simona Cotin
 
Build and Deploy Angular to the Cloud
Build and Deploy Angular to the CloudBuild and Deploy Angular to the Cloud
Build and Deploy Angular to the Cloud
Simona Cotin
 
Serverless adventure tooling
Serverless adventure toolingServerless adventure tooling
Serverless adventure tooling
Simona Cotin
 
Code and Deploy Angular to the Cloud
Code and Deploy Angular to the CloudCode and Deploy Angular to the Cloud
Code and Deploy Angular to the Cloud
Simona Cotin
 
Deploy Angular to the Cloud
Deploy Angular to the CloudDeploy Angular to the Cloud
Deploy Angular to the Cloud
Simona Cotin
 
From Angular to React and back again
From Angular to React and back againFrom Angular to React and back again
From Angular to React and back again
Simona Cotin
 

More from Simona Cotin (18)

Tips and tricks on how to stand out with your bio and talk abstract
Tips and tricks on how to stand out with your bio and talk abstractTips and tricks on how to stand out with your bio and talk abstract
Tips and tricks on how to stand out with your bio and talk abstract
 
Serverless at the end of the Universe
Serverless at the end of the UniverseServerless at the end of the Universe
Serverless at the end of the Universe
 
Tech Roadmap
Tech RoadmapTech Roadmap
Tech Roadmap
 
Build scalable APIs using GraphQL and Serverless
Build scalable APIs using GraphQL and ServerlessBuild scalable APIs using GraphQL and Serverless
Build scalable APIs using GraphQL and Serverless
 
Pwa, are we there yet?!
Pwa, are we there yet?!Pwa, are we there yet?!
Pwa, are we there yet?!
 
Intro GraphQL
Intro GraphQLIntro GraphQL
Intro GraphQL
 
Build Nodejs APIs using Serverless
Build Nodejs APIs  using Serverless Build Nodejs APIs  using Serverless
Build Nodejs APIs using Serverless
 
PWAs, are we there yet?!
PWAs, are we there yet?!PWAs, are we there yet?!
PWAs, are we there yet?!
 
Doppelganger - ng-conf
Doppelganger - ng-confDoppelganger - ng-conf
Doppelganger - ng-conf
 
Hop on the serverless adventure - International Javascript London
Hop on the serverless adventure - International Javascript LondonHop on the serverless adventure - International Javascript London
Hop on the serverless adventure - International Javascript London
 
Build progressive web apps with Angular
Build progressive web apps with AngularBuild progressive web apps with Angular
Build progressive web apps with Angular
 
Deploy Angular to the Cloud (ngBucharest)
Deploy Angular to the Cloud (ngBucharest)Deploy Angular to the Cloud (ngBucharest)
Deploy Angular to the Cloud (ngBucharest)
 
Build and Deploy Angular to the Cloud
Build and Deploy Angular to the CloudBuild and Deploy Angular to the Cloud
Build and Deploy Angular to the Cloud
 
Serverless adventure tooling
Serverless adventure toolingServerless adventure tooling
Serverless adventure tooling
 
Code and Deploy Angular to the Cloud
Code and Deploy Angular to the CloudCode and Deploy Angular to the Cloud
Code and Deploy Angular to the Cloud
 
Deploy Angular to the Cloud
Deploy Angular to the CloudDeploy Angular to the Cloud
Deploy Angular to the Cloud
 
From Angular to React and back again
From Angular to React and back againFrom Angular to React and back again
From Angular to React and back again
 
Music Finder
Music FinderMusic Finder
Music Finder
 

Recently uploaded

一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
The Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdfThe Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdf
mohitd6
 
Upturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in NashikUpturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in Nashik
Upturn India Technologies
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
Yara Milbes
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
TMU毕业证书精仿办理
TMU毕业证书精仿办理TMU毕业证书精仿办理
TMU毕业证书精仿办理
aeeva
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
Jhone kinadey
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
widenerjobeyrl638
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
kalichargn70th171
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
What is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdfWhat is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdf
kalichargn70th171
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Vince Scalabrino
 
Optimizing Your E-commerce with WooCommerce.pptx
Optimizing Your E-commerce with WooCommerce.pptxOptimizing Your E-commerce with WooCommerce.pptx
Optimizing Your E-commerce with WooCommerce.pptx
WebConnect Pvt Ltd
 

Recently uploaded (20)

一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
The Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdfThe Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdf
 
bgiolcb
bgiolcbbgiolcb
bgiolcb
 
Upturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in NashikUpturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in Nashik
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
TMU毕业证书精仿办理
TMU毕业证书精仿办理TMU毕业证书精仿办理
TMU毕业证书精仿办理
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
What is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdfWhat is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdf
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
 
Optimizing Your E-commerce with WooCommerce.pptx
Optimizing Your E-commerce with WooCommerce.pptxOptimizing Your E-commerce with WooCommerce.pptx
Optimizing Your E-commerce with WooCommerce.pptx
 

State management with ngRX

Editor's Notes

  1. Who am I?
  2. Developers like to put everything in a box, neatly arranged and with a clear purpose
  3. Moreover, we want everything to be a pattern
  4. Patterns allow us to recognise things we’ve seen before, enable us to make decisions faster and give us a sense of comfort, I got this!
  5. And with state management we first handled everything in our component
  6. Getting crowded
  7. Maintaining this type of system and not being very deliberate about your state management strategy will kinda come back and bite you in the arse.
  8. Our smart component is concerned of how things work; don’t really have Dom markup, maybe just some wrapping divs. It’s responsible for providing data and behaviour to our presentational component Our presentational components are concerned with how things look
  9. Our smart component is concerned of how things work; don’t really have Dom markup, maybe just some wrapping divs. It’s responsible for providing data and behaviour to our presentational component Our presentational components are concerned with how things look
  10. Our smart component is concerned of how things work; don’t really have Dom markup, maybe just some wrapping divs. It’s responsible for providing data and behaviour to our presentational component Our presentational components are concerned with how things look
  11. And this is great, it helps us isolate state only to certain components And we get patterns. Yay But the state is still spread across multiple components And we still haven’t solved the problem of component communication
  12. Diagram - highlight where the state is, point at different parts that have state, sidebar Let’s look at this component, where do we find state?
  13. Smart vs dumb components Shared data between services - loose control, hard to debug All in one place
  14. Neatly formalised
  15. And our single source of truth is this One big plain javascript object; everything is kept as one big object and is composed by reducers
  16. i. Two properties: 1. Type – string, describes the event - required 2. Payload: optional data; imagine for our initial page we want to load todos, we don’t need a payload, we just go ahead and request some data from the backend
  17. i. Pure functions ii. Given dispatched action: 1. Responds to action type, 2. Has access to action.payload 3. Composes new state 4. Returns new state
  18. Centralised state, which is easier to reason about Better testability, remember our reducers which update our state are pure functions and pure functions are so easy to test
  19. Redux/NGRX is awesome, it gives us predictable immutable state containers that enable efficient change detection and de-coupling of components. 
  20. Applications that deal with lots of data flows changing all the time, like trading apps or network data monitoring apps Also suitable for apps that are almost like a state machine - wizard like
  21. https://twitter.com/tjholowaychuk/status/957853652483416064
  22. You need to be intentional about state management, make sure to have a strategy and an easy way for developers to work together
  23. Start with a question? We have reducers, what do we miss? You need to get data from the server? Reducers, pure functions To perform side effects - Reducers represent sections, or slices of state within your application and should be structured and composed accordingly.