Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ngxs
Search
Jecelyn Yeen
January 10, 2019
Programming
0
610
ngxs
ngxs - state management made simple
Jecelyn Yeen
January 10, 2019
Tweet
Share
More Decks by Jecelyn Yeen
See All by Jecelyn Yeen
WorkerConf 2021 - Browser automation with Puppeteer
jecfish
0
1.4k
My Journey as Technical Presenter
jecfish
0
780
Becoming a GDE
jecfish
0
3.4k
How to get started in IT Freelancing
jecfish
1
250
New Web API & Stylings
jecfish
3
590
如何打造高性能且SEO友好的单页应用(SPA)
jecfish
2
690
JS SEO
jecfish
4
1.3k
Web Performance Optimization
jecfish
5
1.6k
Have Fun with Angular
jecfish
0
80
Other Decks in Programming
See All in Programming
見た目から始める生産性向上
ikumatadokoro
7
850
Polars入門
daikikatsuragawa
1
100
Random\Randomizer クラスで日常のあれこれを解決しよう! / Random\Randomizer class solves familiar trouble
cocoeyes02
0
250
ゆるい個人開発のススメ
kuroppe1819
10
990
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
340
Java 22 Overview
kishida
1
180
Node.js v22 で変わること
yosuke_furukawa
PRO
9
3.5k
Behind VS Code Extensions for JavaScript / TypeScript Linnting and Formatting
unvalley
5
930
Fragment Composition of GraphQL
quramy
7
1k
Anthropic Cookbook のおすすめレシピ
schroneko
7
990
Compose-View Interop in Practice (mDevCamp 2024)
stewemetal
0
140
Ruby Function Composition
bkuhlmann
1
330
Featured
See All Featured
Six Lessons from altMBA
skipperchong
21
3k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.6k
Building Your Own Lightsaber
phodgson
99
5.7k
Writing Fast Ruby
sferik
621
60k
Clear Off the Table
cherdarchuk
84
310k
Documentation Writing (for coders)
carmenintech
60
3.9k
The Power of CSS Pseudo Elements
geoffreycrofte
60
5k
[RailsConf 2023] Rails as a piece of cake
palkan
23
4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
116
18k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
Rails Girls Zürich Keynote
gr2m
91
13k
Adopting Sorbet at Scale
ufuk
68
8.6k
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