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
Live Coding: Migrating an Application to Signals
Search
Manfred Steyer
PRO
May 07, 2025
Programming
520
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Live Coding: Migrating an Application to Signals
Manfred Steyer
PRO
May 07, 2025
More Decks by Manfred Steyer
See All by Manfred Steyer
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
230
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
0
120
Nostalgia Meets Technology: Super Mario with TypeScript
manfredsteyer
PRO
0
200
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
240
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
170
Agentic UI
manfredsteyer
PRO
0
240
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
300
Agentic UI beyond Chats Architecture Patterns & Open Standards @ngMunich 05/2026
manfredsteyer
PRO
0
250
Agentic AI in the Frontend: Architectures with Open Standards @iJS London 2026
manfredsteyer
PRO
0
180
Other Decks in Programming
See All in Programming
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
0
450
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
180
初めてのKubernetes 本番運用でハマった話
oku053
0
130
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
130
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
300
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
510
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
16k
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.6k
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
150
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
17
9.4k
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
110
[RVD26] Vibe Architecture en 2040 : Darwin a-t-il (enfin) eu raison des architectes ?
alexandretouret
0
100
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
KATA
mclloyd
PRO
35
15k
Building an army of robots
kneath
306
46k
Discover your Explorer Soul
emna__ayadi
2
1.2k
Designing for Timeless Needs
cassininazir
1
400
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.7k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
45k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
160
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
450
Git: the NoSQL Database
bkeepers
PRO
432
67k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
420
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
740
Transcript
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten Live Coding:
Migrating an Application to Signals ANGULARarchitects.io
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 2 Agenda
#1 Motivation & Basics #2 Reactive Thinking
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten Motivation &
Basics
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 4 Signals:
Simple Reactivity Signal as Producer 4711 Consumer read set notify 4712
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 5 Fine-Grained
Change Detection Signal Eventually Zone-less!
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 6 DEMO
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 7 Reactive
Thinking Paradigm Shift
• 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 Marble Run
Data Binding
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 11 Building
Your Reactive Graph desserts = signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({}); ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings()));
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 12 Building
Your Reactive Graph desserts = signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({}); ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings()));
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 13 DEMO
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten desserts =
signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({}); ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings())); 14 Building Your Reactive Graph originalName = signal(''); englishName = signal(''); Load Desserts
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 15 Building
Your Reactive Graph dessertsResource = httpResource(() => ({ url: 'http://demo.angulararchitects.io/...', params: { originalName: this.originalName(), englishName: this.englishName(), } })); desserts = signal<Dessert[]>([]); ratings = signal<DessertIdToRatingMap>({}); ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings()));
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 16 Building
Your Reactive Graph dessertsResource = httpResource(() => ({ url: 'http://demo.angulararchitects.io/...', params: { originalName: this.originalName(), englishName: this.englishName(), } })); desserts = dessertsResource.value; ratings = signal<DessertIdToRatingMap>({}); ratedDesserts = computed(() => this.toRated(this.desserts(), this.ratings()));
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 17 DEMO
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 18 Next
Steps Service for creating Resource Service for managing Signals (Store)
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 19 Conclusion
Derive State Sync: Computed Async: Resource API
• Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten Marble Run