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
ReactとUXの話 〜 startTransition を添えて 〜
Search
yuuki-katsuta
May 09, 2025
Programming
0
25
ReactとUXの話 〜 startTransition を添えて 〜
Netadashi Meetup #12 の登壇資料です。
yuuki-katsuta
May 09, 2025
Tweet
Share
More Decks by yuuki-katsuta
See All by yuuki-katsuta
JavaScript AST入門 〜自作Babelプラグインを添えて〜
sakiika
1
11
Other Decks in Programming
See All in Programming
PHPカンファレンス関西2025 基調講演
sugimotokei
6
1k
NEWT Backend Evolution
xpromx
1
160
iOS開発スターターキットの作り方
akidon0000
0
210
フロントエンドのパフォーマンスチューニング
koukimiura
6
2.3k
バイブコーディング超えてバイブデプロイ〜CloudflareMCPで実現する、未来のアプリケーションデリバリー〜
azukiazusa1
2
730
The Niche of CDK Grant オブジェクトって何者?/the-niche-of-cdk-what-isgrant-object
hassaku63
1
720
SQLアンチパターン第2版 データベースプログラミングで陥りがちな失敗とその対策 / Intro to SQL Antipatterns 2nd
twada
PRO
35
10k
テスターからテストエンジニアへ ~新米テストエンジニアが歩んだ9ヶ月振り返り~
non0113
2
240
DMMを支える決済基盤の技術的負債にどう立ち向かうか / Addressing Technical Debt in Payment Infrastructure
yoshiyoshifujii
4
650
React は次の10年を生き残れるか:3つのトレンドから考える
oukayuka
40
15k
商品比較サービス「マイベスト」における パーソナライズレコメンドの第一歩
ucchiii43
0
230
CLI ツールを Go ライブラリ として再実装する理由 / Why reimplement a CLI tool as a Go library
ktr_0731
3
700
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Producing Creativity
orderedlist
PRO
346
40k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Designing for Performance
lara
610
69k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Become a Pro
speakerdeck
PRO
29
5.4k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
21
1.4k
Practical Orchestrator
shlominoach
190
11k
It's Worth the Effort
3n
185
28k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
19k
Transcript
3FBDUͱ69ͷ ʙTUBSU5SBOTJUJPOΛఴ͑ͯʙ উా༤ᏻc /FUBEBTIJ.FFUVQ
ɾ5BHCBOHFST *OD ɾओʹϑϩϯτΤϯυͷ։ൃʢ͘Β͍ʣ ɾొஃॳΊͯ উా༤ᏻ!ZVVLJLBUTVUB ࣗݾհ
͡Ίʹ ςʔϚ ɾ3FBDUͷฒྻϨϯμϦϯά͕ͨΒ͢69ͷਐԽ ɾ6*ߋ৽ͷཪΛ͍ͯΈΑ͏
69ʢϢʔβʔମݧʣΛୈҰʹ IUUQTMFHBDZSFBDUKTPSHCMPHCVJMEJOHHSFBUVTFSFYQFSJFODFTXJUIDPODVSSFOUNPEFBOETVTQFOTFIUNMQVUUJOHVTFS FYQFSJFODF fi STU %FWFMPQFS&YQFSJFODFˠ6TFS&YQFSJFODF
4ZODISPOPVT3FOEFSJOH Event Event Event User Interaction Main thread ʢ#MPDLFEʣ
ʢ#MPDLFEʣ
$PODVSSFOU3FOEFSJOH User Interaction Event Event ʢ/PO#MPDLJOHʣʢ/PO#MPDLJOHʣ
$PODVSSFOU3FOEFSJOH ɾ3FBDUͷ৽͍͠ϨϯμϦϯάػߏ ɾϨϯμϦϯάϓϩηεΛதஅՄೳͳ࡞ۀ୯Ґʹׂ ɹɹˠதஅɾ࠶ձɾഁغ͕Մೳʹ ɹɹˠϨϯμϦϯάϓϩηεʹ༏ઌͷ֓೦ ˞ϨϯμϦϯάˠԾ%0.πϦʔͷߏங
෮शʙTUBSU5SBOTJUJPOͱʙ TUBSU5SBOTJUJPOؔΛ༻ͯ͠ঢ়ଶͷߋ৽Λ ʮ༏ઌͷεςʔτߋ৽ʯͱͯ͠3FBDUʹ͑Δ ͜ͷߋ৽ۓٸͰͳ͍ͨΊɺॲཧ͖͢ۓٸͷλεΫ͕͋Δ߹தஅͰ͖Δ
TUBSU5SBOTJUJPOͷྫ ೖྗϑΥʔϜ user input Rendering ༏ઌߴ ༏ઌ Ϣʔβͷೖྗʹର͢ΔมԽˠ༏ઌߴ ϢʔβͷೖྗʹΑΔϦετͷϨϯμʔˠ༏ઌ
͏Ұͭͷੈք ʮCSBODIϞσϧʯʮผͷੈքʯͱ͍͏දݱ ˠVTF5SBOTJUJPO͕ͲͷΑ͏ʹػೳ͢Δ͔Λཧղ͢ΔͨΊͷൺᄻදݱ ެࣜυΩϡϝϯτΑΓ IUUQTSFBDUKTPSHEPDTDPODVSSFOUNPEFQBUUFSOTIUNM
CSBODIϞσϧͰߟ͑ͯΈΔ ༏ઌͷ3FOEFS ˠߴ༏ઌͷϨϯμϦϯά͕ऴྃͨ͠ޙʹͷΈ࣮ߦ։࢝ ˠߴ༏ઌͷλεΫͷߋ৽ʹΑͬͯதஅ͞ΕΔ Main thread transition thread ʢ༏ઌͷRenderʣ
1 2 3 4 5 %0.ө %0.ө %0.ө ʢϑΥʔϜೖྗ
CSBODIϞσϧͰߟ͑ͯΈΔ ߴ༏ઌͷλεΫͷߋ৽ʹΑͬͯதஅ͞ΕΔ ˠߴ༏ઌͷλεΫᶅ͕ൃੜ ˠ༏ઌͷλεΫᶄͷϨϯμϦϯά͕தஅ Main thread transition thread ʢ༏ઌͷRenderʣ
1 2 3 4 5 %0.ө %0.ө %0.ө ʢϑΥʔϜೖྗ
·ͱΊ ɾ3FBDU͓͠Ζ͍ʂ ɹ͜ͷΈΛ׆༻ͯ͠ɺϓϩμΫτΛΑΓྑ͍ͷʹ͍ͨ͠Ͷ ɾৄࡉͳΈΛͬͱΓͨ͘ͳͬͨ ɹ'JCFS3FDPODJMFS3FDPODJMJBUJPOʜ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂʂ