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
Change Detection - Deep Dive
Search
Rainer Hahnekamp
February 29, 2024
Technology
250
0
Share
Change Detection - Deep Dive
Rainer Hahnekamp
February 29, 2024
More Decks by Rainer Hahnekamp
See All by Rainer Hahnekamp
Angular Architecture Revisited Modernizing Angular Architectural Patterns
rainerhahnekamp
0
150
NgRx SignalStore: The Power of Extensibility
rainerhahnekamp
0
340
Vitest Highlights in Angular
rainerhahnekamp
0
330
From Hours to Minutes - An AI Case Study with Sheriff
rainerhahnekamp
0
42
RxJS, Signals, and Native Observables: Answering the Critical Questions
rainerhahnekamp
0
36
Zurück in den Browser – Das Comeback der Frontend-Tests
rainerhahnekamp
0
97
From Hours to Minutes: An AI Case Study with Sheriff
rainerhahnekamp
0
170
RxJS, Signals & Native Observables
rainerhahnekamp
0
160
The Road to Angular Today Milestones, Mistakes & Momentum
rainerhahnekamp
0
160
Other Decks in Technology
See All in Technology
"スキルファースト"で作る、AIの自走環境
subroh0508
1
670
【新卒研修】ライブデモ + compose.yaml読解_講義資料
dip_tech
PRO
0
130
AWS WAFの運用を地道に改善し、自社で運用可能にするプラクティス
andpad
1
660
パーソルキャリア IT/テクノロジー職向け 会社紹介資料|Company Introduction Deck
techtekt
PRO
0
260
TypeScript の型で副作用の実行順序を制御する
yanaemon
1
140
AI全盛の今だからこそ、あえてもう一度振り返るAPIの基礎
smt7174
3
150
AWS運用におけるAI Agent活用術 / JAWS-UG 神戸 #11 LT大会
genda
1
330
最新技術を"今は選ばない"という技術選定
leveragestech
PRO
0
360
LookerとADKで作る社内AIエージェント
chanyou0311
0
290
ECSのTerraformモジュールにコントリビュートした話
harukasakihara
0
280
【禁断】Obsidianの第二の脳に「知の巨人」と呼ばれた師匠の脳をロードしてみた
nagatsu
0
2.7k
SDDで⾒える、AIコーディングの"内訳"
lycorptech_jp
PRO
0
150
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
The Curious Case for Waylosing
cassininazir
1
350
Un-Boring Meetings
codingconduct
0
290
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
260
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
550
Balancing Empowerment & Direction
lara
6
1.1k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
New Earth Scene 8
popppiees
3
2.2k
Transcript
RainerHahnekamp Deep Dive Change Detection Rainer Hahnekamp - 29. February
2024 - ngOslo
RainerHahnekamp About Me... Professional NgRx https://www.youtube.com/ @RainerHahnekamp https://www.ng-news.com https://github.com/softarc-consulting/sheriff •
Rainer Hahnekamp ANGULARarchitects.io • Developer / Trainer / Speaker Modern Spring for Angular @RainerHahnekamp
RainerHahnekamp Component Tree Web Application Submit Cancel Change Detection
RainerHahnekamp Component Tree Web Application Submit Cancel Change Detection
RainerHahnekamp Component Tree Web Application Submit Cancel Change Detection
RainerHahnekamp Component Tree Web Application Submit Cancel Change Detection
RainerHahnekamp Component Tree Web Application Submit Cancel Change Detection
RainerHahnekamp Component Tree Web Application Submit Cancel Change Detection
RainerHahnekamp Component Tree Web Application Submit Cancel Change Detection
RainerHahnekamp Component Tree Web Application Submit Cancel Change Detection
RainerHahnekamp Component Tree Web Application Submit Cancel Change Detection
RainerHahnekamp Triggers for Change Detection Handled DOM Events Asynchronous Tasks
RainerHahnekamp 1. Change Detection with Default Strategy = OnPush =
Default 1. Waiting for Events 3. Dirty Marking 4. Change Detection zone.js 2. Event Happens
RainerHahnekamp Change Detection: OnPush • Only checks if Component is
dirty • No dirty marking by asynchronous task!
RainerHahnekamp 2. Change Detection: Click Event in Default Component =
OnPush = Default 1. Waiting for Events 3. Dirty Marking 4. Change Detection zone.js 2. Event Happens
RainerHahnekamp 3. Change Detection: Click Event in OnPush Component =
OnPush = Default 1. Waiting for Events 3. Dirty Marking 2. Event Happens 4. Change Detection zone.js
RainerHahnekamp Criteria markForCheck Immutable Property Binding Handled DOM Events async
Pipe Signal Change (Local Change Detection) manually via markForCheck
RainerHahnekamp 4. Local Change Detection: Signal Change in OnPush Component
= OnPush = Default 1. Waiting for Events 3. Dirty Marking 4. Change Detection zone.js 2. Event Happens
RainerHahnekamp Change Detection in the Future • Careful with OnPush
with zone.js • "Acceptable" with upcoming Scheduler • Simple & Easy with upcoming Signal Components
RainerHahnekamp Further Reading and Watching https://medium.com/ngconf/ngrx-signal-store-the-mis sing-piece-to-signals-ac125d804026 https://youtu.be/0PJPZ3rLqrY