Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ngxs
Search
Jecelyn Yeen
January 10, 2019
Programming
840
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ngxs
ngxs - state management made simple
Jecelyn Yeen
January 10, 2019
More Decks by Jecelyn Yeen
See All by Jecelyn Yeen
WorkerConf 2021 - Browser automation with Puppeteer
jecfish
0
1.9k
My Journey as Technical Presenter
jecfish
0
1k
Becoming a GDE
jecfish
0
4k
How to get started in IT Freelancing
jecfish
1
300
New Web API & Stylings
jecfish
3
780
如何打造高性能且SEO友好的单页应用(SPA)
jecfish
2
950
JS SEO
jecfish
4
1.6k
Web Performance Optimization
jecfish
5
1.9k
Have Fun with Angular
jecfish
0
130
Other Decks in Programming
See All in Programming
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
120
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
360
AIが実装を担う時代の「技術設計」と「チームマネジメント」
kamina_zzz
2
240
React Native経験者が Flutterを30⽇間触って驚いたこと
3saito
0
170
Secure Your Coding Agent Like It’s Malware (v1.5) 🇬🇧 @Code.talks 2026
richargh
0
110
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
330
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
640
Seven New Principles of Software Engineering
yegor256
0
470
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.2k
AI Augmentation Techniques with Liberty
ivargrimstad
1
420
GraphQL の onError と Nullability のこれから
quramy
0
210
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
180
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
400
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
470
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.3k
Product Roadmaps are Hard
iamctodd
55
13k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
300
Large-scale JavaScript Application Architecture
addyosmani
516
110k
My Coaching Mixtape
mlcsv
0
380
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Transcript
State Management Made Simple
@JecelynYeen - Google Developer Expert (GDE) - Blogger - Software
Architect - Women Who Code KL Director - ng-MY Conference Organizer
state management pattern + library for Angular
predictable state mutations
None
Why Yet Another State Management Solution?
Pick your flavor!
Reimagine State Management for Angular
Reduce Boilerplate
Rethink Developer Ergonomic & User API
Getting Started ng add @ngxs/schematics https://github.com/ngxs/schematics
Generate 2 files: .actions.ts, .state.ts ng generate @ngxs/schematics:store --name app
https://github.com/ngxs/schematics
Demo: Coffee https://ngxs-coffee.firebaseapp.com
Overview (State)
Overview (Actions) • [Coffee API] Get Coffee List • [List
Page] Add ToCart (coffeeName) • [Cart Page] Add One Cart Item (coffeeName) • [Cart Page] Remove One Cart Item (coffeeName) • [Cart Page] Remove Cart Item (coffeeName) • [Pay Component] Empty Cart
Overview (Actions) GetCoffeeList AddToCart AddOne RemoveOne Remove EmptyCart
Overview (Selectors) Coffee List Cart List Total Amount Total Quantity
Overview (Selectors) • [List Page] Coffee List • [Cart Page]
Cart List • [Pay Component] Total Cart Amount • [Header Component] Total Cart Quantity
Major NGXS Concepts Component Actions Store Plugins Backend dispatch m
utate select
Rxjs is awesome, but is it a must?
Effects can be painful
Make use of Dependency Injection (DI)
Making Actions Asynchronous
Plugins https://ngxs.gitbook.io/ngxs/plugins/intro
NGXS is extendable
CLI Router Storage Form Logger Websocket
Labs https://ngxs.gitbook.io/ngxs/ngxs-labs/intro
Innovation without Compromising Stability
Emitter - Get rid of Actions (until you really need
them)
Dispatch Decorator Immer Adapter
Extensive Documentation https://ngxs.gitbook.io/ngxs/
Do you know why it’s called NGXS? https://youtu.be/rkn73khwfWU?t=1582
Thanks for all contributors https://github.com/ngxs/store/graphs/contributors Austin Daniel | Mark Whitfeld
| Danny Blue | Leon Radley | Max Ivanov
Try me! > Twitter: @JecelynYeen Slides: https://speakerdeck.com/chybie/ngxs Demo: https://github.com/chybie/ngxs-coffee Demo
(Emitter): https://github.com/chybie/ngxs-coffee/tree/emitter-demo
Resources - Why another state management framework for Angular? -
NGXS official site - ngAir Live Video Podcast about NGXS - Announcing NGXS 3.1 - Announcing NGXS 3.3