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
Angular's Future with Signals @ngStuttgart
Search
Manfred Steyer
PRO
July 04, 2023
Programming
620
1
Share
Angular's Future with Signals @ngStuttgart
Manfred Steyer
PRO
July 04, 2023
More Decks by Manfred Steyer
See All by Manfred Steyer
Agentic UI in the Frontend: Architectures with Open Standards @JAX 2026 in Mainz
manfredsteyer
PRO
0
15
Rethinking Angular: The Future with Signal Store and the New Resource API @JAX 2024 in Mainz
manfredsteyer
PRO
0
11
Agentic UI with Angular @ngAir April 2025
manfredsteyer
PRO
0
160
Migration to Signals, Signal Forms, Resource API, and NgRx Signal Store @Angular Days 03/2026 Munich
manfredsteyer
PRO
0
310
AI Assistants for YourAngular Solutions @Angular Graz, March 2026
manfredsteyer
PRO
0
190
AI Assistants for Your Angular Solutions @ngVienna March 2026
manfredsteyer
PRO
0
92
AI Assistants for Your Angular Solutions
manfredsteyer
PRO
0
200
Nostalgia Meets Technology: Super Mario with TypeScript
manfredsteyer
PRO
0
140
Full Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
110
Other Decks in Programming
See All in Programming
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
150
Road to RubyKaigi: Play Hard(ware)
makicamel
1
380
Claude CodeでETLジョブ実行テストを自動化してみた
yoshikikasama
0
580
tRPCの概要と少しだけパフォーマンス
misoton665
2
220
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
390
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
110
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
180
의존성 주입과 모듈화
fornewid
0
150
Programming with a DJ Controller — not vibe coding
m_seki
3
140
AIベース静的検査器の偽陽性率を抑える工夫3選
orgachem
PRO
3
350
Liberating Ruby's Parser from Lexer Hacks
ydah
2
1.9k
AI時代のエンジニアリングの原則 / Engineering Principles in the AI Era
haru860
0
570
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
220
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
120
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
170
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Become a Pro
speakerdeck
PRO
31
5.9k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
250
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
900
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
460
Google's AI Overviews - The New Search
badams
0
980
Why Our Code Smells
bkeepers
PRO
340
58k
Transcript
@ManfredSteyer Angular's Future with Signals ManfredSteyer
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer Zone.js: Monkey Patching After Event Handler: Inform Angular CD
Checks Components all components (default) or selected ones (OnPush)
@ManfredSteyer Zone.js: Magic Zone.js: ~100K Cannot patch async/await coarse grained
CD e.g. Components are always checked as a whole, even if only a tiny fraction changed
@ManfredSteyer Signals!
@ManfredSteyer Signals!
@ManfredSteyer Signal as Producer 4711 Consumer read set notify 4712
@ManfredSteyer flights: Flight[] = []; const flights = await this.flightService.findAsPromise(from,
to); this.flights = flights; <div *ngFor="let f of flights"> <flight-card [item]="f" /> </div>
@ManfredSteyer flights = signal<Flight[]>([]); const flights = await this.flightService.findAsPromise(from, to);
this.flights.set(flights); <div *ngFor="let f of flights()"> <flight-card [item]="f" /> </div>
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer @Component({ signals: true, selector: 'temperature-calc', template: ` <p>C: {{
celsius() }}</p> <p>F: {{ fahrenheit() }}</p> `, }) export class SimpleCounter { celsius = signal(25); fahrenheit = computed(() => this.celsius() * 1.8 + 32); } Taken from the Signals RFC: https://github.com/angular/angular/discussions/49685
@ManfredSteyer @Component({ signals: true, selector: 'temperature-calc', template: ` <p>C: {{
celsius() }}</p> <p>F: {{ fahrenheit() }}</p> `, }) export class SimpleCounter { celsius = input(25); fahrenheit = computed(() => this.celsius() * 1.8 + 32); }
@ManfredSteyer Work w/o Zone.js Interop with traditional components Fine-grained CD
No need to update code!
@ManfredSteyer Free eBook (5th Edition) ANGULARarchitects.io/book Module Federation, Nx, DDD
12 chapters
@ManfredSteyer Fine-grained CD Zone-less Future Convertible to Observables and vice
versa! No need to unsubscribe! No need to update code!
@ManfredSteyer • Maintainable Architectures • 🆕🔥 Standalone Components & APIs
• Micro Frontends and Module Federation • 🆕🔥 Signals and Your Architecture: CD, NGRX, RxJS-Interop Public or Company Training, Remote or On-Site German: angulararchitects.io/workshop-de English: angulararchitects.io/workshop-en