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
Reactive Thinking with Signals, Resource API, ...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Manfred Steyer
PRO
May 18, 2025
Programming
460
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Reactive Thinking with Signals, Resource API, and httpResource @Devm.io Angular 20 Launch Party
Manfred Steyer
PRO
May 18, 2025
More Decks by Manfred Steyer
See All by Manfred Steyer
Human in the Loop Beyond Approval: Toward True Collaboration @FrontMania 2026 in Utrecht
manfredsteyer
PRO
0
52
Agentic UI: Where the Agent meets the User @FrontMania 2026 in Utrecht
manfredsteyer
PRO
0
50
A2UI as an Architecture Question: Agentic UI Between AI Freedom and Control
manfredsteyer
PRO
0
92
AI-Ready Angular Architectures Architecture as Executable Contract
manfredsteyer
PRO
0
250
Nostalgia Meets Technology: Super Mario with TypeScript @BASTA 2026 in Mainz, Germany
manfredsteyer
PRO
0
47
Beyond Chatbots: Agentic UI with Open Standards @AGNTcon 2026 in Amsterdam
manfredsteyer
PRO
0
150
Next-Level Frontends: Agentic Web UIs Under the Hood
manfredsteyer
PRO
0
110
Agentic UI with Open Standards @ngGraz Sep 2026
manfredsteyer
PRO
0
120
Agentic UI with Open Standards @GDG Salzburg, Bgl & Prishtina
manfredsteyer
PRO
0
98
Other Decks in Programming
See All in Programming
Agents on Rails - Rails at Scale 2026
irinanazarova
0
530
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
170
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
360
Jetpack Compose Mechanisms
skydoves
2
720
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
970
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
130
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.3k
AWSに止められる覚悟してますか?
morizo_1984
2
530
Simple Storage Service(S3) is not simple
iwatsukayura
0
270
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
460
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
400
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
360
HDC tutorial
michielstock
2
950
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Done Done
chrislema
187
17k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
280
Designing Powerful Visuals for Engaging Learning
tmiket
1
600
YesSQL, Process and Tooling at Scale
rocio
174
15k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
800
Transcript
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten Reactive Thinking
with Signals, Resource API, and httpResource ANGULARarchitects.io
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten Application Code
as a Script
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten Marble Run
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 5 1)
Signal Graph 2) Resource API 3) DEMO 4) Signal Graph in Demo 5) Live Coding Agenda
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 6 About
Me (Remote) Angular Workshops and Consulting Google Developer Expert for Angular Blog, Books, Articles, and Talks about Angular Manfred Steyer, ANGULARarchitects.io
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 7 Reactive
Graph
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 8 Building
Your Reactive Graph desserts = signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({}); ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings()));
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 9 Building
Your Reactive Graph desserts = signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({}); ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings()));
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten desserts =
signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({}); ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings())); 10 Building Your Reactive Graph originalName = signal(''); englishName = signal(''); Load Desserts
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 11 Resource
API
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 12 Resource
API dessertsResource = resource({ request: this.dessertsCriteria, loader: (param) => { return this.#dessertService.findPromise(param.request); } });
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 13 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, …));
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 14 httpResource
dessertsResource = httpResource(() => ({ url: 'http://demo.angulararchitects.io/...', params: { originalName: this.originalName(), englishName: this.englishName(), } })); desserts = this.dessertsResource.value; ratedDesserts = computed(() => this.toRated(this.desserts, …));
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 15 DEMO
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 16 Reactive
Graph in Our App
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 17 canvas
(view child) style levelKey animation levelResource tilesMapResource tilesResource tilesMapProgress render (effect) levelOverview Resource
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten Effect: Connecting
Reactive and Imperative World
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 20 DEMO
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 21 1)
Build a reactive graph 1) Computed: Sync Derivation/ Readonly 2) Linked Signal: Sync Derivation/ Writable 3) Resource API: Async Derivation/ Writable 2) httpResource: fetching data within the graph 3) Service: creating httpResource Conclusion
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten Marble Run
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 23 [Social
Media] Manfred Steyer [web] ANGULARarchitects.io Manfred Steyer @ Manfred Steyer Slides & Examples Remote Company Workshops and Consulting http://angulararchitects.io