Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Level up your NgRx game

Level up your NgRx game

Tips and tricks on angular / NgRx best practices. ngrx provides a set of clean, well-tested libraries for reactive programming in Angular applications.

Avatar for Önder Ceylan

Önder Ceylan

September 27, 2018
Tweet

More Decks by Önder Ceylan

Other Decks in Programming

Transcript

  1. L E V E L U P Y O U

    R N G R X G A M E Ö N D E R C E Y L A N
  2. P L AT F O R M • @ngrx/store •

    @ngrx/effects • @ngrx/router-store • @ngrx/store-devtools • @ngrx/entity • @ngrx/schematics
  3. M A I N TA I N A G O

    O D A C T I O N H Y G I E N E
  4. 3 P I T FA L L S O F

    W R I T I N G G O O D A C T I O N S
  5. P I T FA L L 1 
 R E

    U S I N G A C T I O N S
  6. P I T FA L L 1 
 R E

    U S I N G A C T I O N S
  7. P I T FA L L 1 
 R E

    U S I N G A C T I O N S
  8. P I T FA L L 1 
 R E

    U S I N G A C T I O N S
  9. P I T FA L L 2 
 G E

    N E R I C A C T I O N T Y P E S
  10. P I T FA L L 2 
 G E

    N E R I C A C T I O N T Y P E S
  11. P I T FA L L 2 
 G E

    N E R I C A C T I O N T Y P E S @ngrx/store/init
 [User] Authenticate
 [User] Authenticate Success
 [WontonSoup] Add One
 [WontonSoup] Add One
 [Cart] Checkout
 [Cart] Checkout Success @ngrx/store/init
 [Login Page] Login
 [Auth API] Login Success
 [Menu Page] Add Wonton Soup
 [Soup Details Page] Add Wonton Soup
 [Cart Dropdown] Checkout
 [Cart API] Checkout Success Good Action Hygiene with NgRx @ng-conf - Mike Ryan
  12. P I T FA L L 3 
 A C

    T I O N S U B T Y P I N G
  13. P I T FA L L 3 
 A C

    T I O N S U B T Y P I N G
  14. P I T FA L L 3 
 A C

    T I O N S U B T Y P I N G
  15. P I T FA L L 3 
 A C

    T I O N S U B T Y P I N G
  16. P I T FA L L 3 
 A C

    T I O N S U B T Y P I N G
  17. Avoid nested conditionals in reducers and effects, keep you action

    types narrow Good Action Hygiene with NgRx @ng-conf - Mike Ryan
  18. G O O D A C T I O N

    H Y G I E N E [Login Page] Login
 [Menu Page] Add Wonton
 [Menu Page] Add Teriyaki
 [Menu Page] Add Noodle
 [Cart] Checkout
 [Auth API] Login Success
 [Auth API] Login Failure
 [Cart API] Checkout Success
 [Cart API] Checkout Failure
 [WS API] Update Availability
 [WebSocket] Open
 [WebSocket] Disconnected
 [IndexDB] Save Success Good Action Hygiene with NgRx @ng-conf - Mike Ryan
  19. S I M P L I F Y Y O

    U R R E D U C E R S W I T H @ N G R X / E N T I T Y
  20. C O L L E C T I O N

    M E T H O D S
  21. U S E S E L E C T O

    R S S E R I O S LY
  22. C O M P O S I N G S

    E L E C T O R S
  23. C O M P O S I N G S

    E L E C T O R S
  24. K E E P Y O U R S T

    O R E C L E A N
  25. W H AT B E L O N G S

    I N S T O R E ?
  26. S H A R I Reducing the Boilerplate with NgRx

    @ng-conf - Brandon Roberts & Mike Ryan
  27. S H A R I S H A R E

    D Shared state is accessed by many components and services Reducing the Boilerplate with NgRx @ng-conf - Brandon Roberts & Mike Ryan
  28. S H A R I H Y D R AT

    E D State that is persisted and hydrated from storage Reducing the Boilerplate with NgRx @ng-conf - Brandon Roberts & Mike Ryan
  29. S H A R I AVA I L A B

    L E State that needs to be available when re-entering routes Reducing the Boilerplate with NgRx @ng-conf - Brandon Roberts & Mike Ryan
  30. S H A R I R E T R I

    E V E D State that needs to be retrieved with a side effect Reducing the Boilerplate with NgRx @ng-conf - Brandon Roberts & Mike Ryan
  31. S H A R I I M PA C T

    E D State that is impacted by actions from other sources Reducing the Boilerplate with NgRx @ng-conf - Brandon Roberts & Mike Ryan
  32. S E R I A L I Z AT I

    O N 
 & H Y D R AT I O N
  33. C L I E N T S T O R

    A G E & H Y D R AT I O N
  34. C L I E N T S T O R

    A G E & H Y D R AT I O N
  35. T H A N K Y O U ! Follow

    me on @ O N D E R C E Y L A N