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
Effective Signals in Angular 19+ Rules and Helpers
Search
Manfred Steyer
PRO
March 13, 2025
Programming
600
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Effective Signals in Angular 19+ Rules and Helpers
Manfred Steyer
PRO
March 13, 2025
More Decks by Manfred Steyer
See All by Manfred Steyer
Beyond Chatbots: Agentic UI with Open Standards @AGNTcon 2026 in Amsterdam
manfredsteyer
PRO
0
92
Next-Level Frontends: Agentic Web UIs Under the Hood
manfredsteyer
PRO
0
70
Agentic UI with Open Standards @ngGraz Sep 2026
manfredsteyer
PRO
0
86
Agentic UI with Open Standards @GDG Salzburg, Bgl & Prishtina
manfredsteyer
PRO
0
74
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
510
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
0
220
Nostalgia Meets Technology: Super Mario with TypeScript
manfredsteyer
PRO
0
300
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
310
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
220
Other Decks in Programming
See All in Programming
Webの地図
yosuke_furukawa
PRO
6
4.7k
XHTMLが残したもの
yosuke_furukawa
PRO
2
830
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
450
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
730
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
160
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
200
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
150
wkhtmltopdfの次どうするか問題2026
willnet
2
1.6k
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1.1k
Heart of Swift Concurrency
koher
0
950
AHC070解法紹介
eijirou
0
130
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
0
1.7k
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
250
A designer walks into a library…
pauljervisheath
211
25k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
610
Exploring anti-patterns in Rails
aemeredith
4
510
Transcript
AngularArchitects.io | @ManfredSteyer Effective Signals in Angular 19+ Rules and
Helpers NG VENICE
Application Code as a Script
Reactive Programming: Paradigm Shift!
Marble Run
Marble Run Data Binding
Agenda • Computed Signals • Resource API • Linked Signals
• Effects & Reactive Helpers 3 Rules of Thumb
About me… Manfred Steyer, ANGULARarchitects.io (Remote) Angular Workshops and Consulting
Google Developer Expert for Angular Blog, Books, Articles, and Talks about Angular Manfred Steyer
Computed Signals
Demo Branch: 02a-input-signals
Reactive Flow with Computed desserts = signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({});
ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings()));
Reactive Flow with Computed desserts = signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({});
ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings()));
Reactive Flow with Computed desserts = signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({});
ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings())); originalName = signal(''); englishName = signal(''); Load Desserts
Resource API
Resource API dessertsResource = resource({ request: this.dessertsCriteria, loader: (param) =>
{ return this.#dessertService.findPromise(param.request); } }); Experimental in Angular 19
Resource API dessertsResource = resource({ request: this.dessertsCriteria, loader: (param) =>
{ return this.#dessertService.findPromise(param.request); } }); dessertsCriteria = computed(() => ({ originalName: this.originalName(), englishName: this.englishName(), })); desserts = this.dessertsResource.value; ratedDesserts = computed(() => this.toRated(this.desserts, …));
Resource Prevents Race Conditions Pancakes Sacher Cake Ice Cream Pancakes
Resource Prevents Race Conditions Pancakes Sacher Cake Ice Cream Pancakes
„switchMap semantics“
Demo Branch: 02c-resource
Linked Signals
Read-only Signals and Data Binding store = inject(DessertDetailStore); originalName =
this.store.originalName; <input [(ngModel)]="dessert.originalName" />
Read-only Signals and Data Binding store = inject(DessertDetailStore); originalName =
linkedSignal(() => this.store.originalName()); <input [(ngModel)]="dessert.originalName" />
Architecture Rule #1 Derive state where possible Sync/ readonly: computed
Async: resource Sync/ writable: linked signal
Effects & Reactive Helpers
Connecting Reactive and Imperative World
None
Ideal-typical Tasks • Drawing on a canvas • Manual DOM
manipulations • Logging • Synching with LocalStore Stuff, you cannot do with data binding Rendering (and similar tasks …)
Demo Branch: 04c-effects
Conclusion Architecture Rule #2 Avoid effects triggering business logic
Instead: Reactive Helpers like Resource API @ngrx/signals ngxtension Your Own
…
Reactive Helpers: Effects Under the Hood
Conclusion Architecture Rule #3 Use reactive helpers to streamline reactivity
Free eBook (6th Edition) angularArchitects.io/ebook
Conclusion Architecture Rule #1 Derive state where possible Architecture Rule
#2 Avoid effects triggering business logic Architecture Rule #3 Use reactive helpers to streamline reactivity
None
Marble Run
ManfredSteyer AngularArchitects.io Slides & Examples Remote Company Workshops and Consulting
http://angulararchitects.io