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
Effective Signals in Angular 19+ Rules and Helpers
Search
Manfred Steyer
PRO
March 13, 2025
Programming
580
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
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
340
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
0
160
Nostalgia Meets Technology: Super Mario with TypeScript
manfredsteyer
PRO
0
240
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
260
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
180
Agentic UI
manfredsteyer
PRO
0
260
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
310
Agentic UI beyond Chats Architecture Patterns & Open Standards @ngMunich 05/2026
manfredsteyer
PRO
0
260
Agentic AI in the Frontend: Architectures with Open Standards @iJS London 2026
manfredsteyer
PRO
0
190
Other Decks in Programming
See All in Programming
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
890
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
520
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
140
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
170
VibeCodingからAgenticWorkflowへ
starfish719
0
390
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.5k
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
590
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
100
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
260
What's New in Android 2026
veronikapj
0
260
Android CLI
fornewid
0
220
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
550
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
410
Abbi's Birthday
coloredviolet
3
9.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
570
A Soul's Torment
seathinner
6
3.4k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
610
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Thoughts on Productivity
jonyablonski
76
5.3k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.1k
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