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
0
150
Change Detection - Deep Dive
Rainer Hahnekamp
February 29, 2024
Tweet
Share
More Decks by Rainer Hahnekamp
See All by Rainer Hahnekamp
Cypress or Playwright?
rainerhahnekamp
0
160
Powerduo Nx and Sheriff
rainerhahnekamp
0
40
NgRx Signal Store
rainerhahnekamp
0
170
Signals Unleashed: The Full Guide
rainerhahnekamp
0
420
NgRx Signal Store
rainerhahnekamp
0
70
Basta Spring 2024 - Cypress und Playwright
rainerhahnekamp
0
290
Powerduo Nx and Sheriff
rainerhahnekamp
0
67
Match Made in Heaven: NgRx SignalStore
rainerhahnekamp
0
32
Server Components, Meta-Frameworks, Signals, Resumability: What the heck?
rainerhahnekamp
0
54
Other Decks in Technology
See All in Technology
Gradle Build Scanを使ってビルドのことを知ろう potatotips #87
tomorrowkey
2
140
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
2
240
データベース02: データベースの概念
trycycle
0
170
How to do well in consulting–Balkan Ruby 2024
irinanazarova
0
110
MixIT 2024 - Pulumi : Gérer son infra avec son langage de programmation préféré
ju_hnny5
1
110
IaCジェネレーターとBedrockで詳細設計書を生成してみた
tsukasa_ishimaru
4
820
.NET Profiler in 2024.
kkamegawa
2
620
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
240
Google Cloud Next '24でブログを10本書いた方法と勉強会を沸かせた方法
yasumuusan
0
320
web-application-security
matsuihidetoshi
1
180
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
1
880
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
690
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
Adopting Sorbet at Scale
ufuk
69
8.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Debugging Ruby Performance
tmm1
70
11k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
358
22k
VelocityConf: Rendering Performance Case Studies
addyosmani
321
23k
Making Projects Easy
brettharned
109
5.5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
242
1.2M
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
A designer walks into a library…
pauljervisheath
201
23k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
19
6.9k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
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