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
29
ReactとUXの話 〜 startTransition を添えて 〜
Netadashi Meetup #12 の登壇資料です。
yuuki-katsuta
May 09, 2025
Tweet
Share
More Decks by yuuki-katsuta
See All by yuuki-katsuta
Viteプラグインで学ぶビルドツールの裏側
sakiika
0
10
JavaScript AST入門 〜自作Babelプラグインを添えて〜
sakiika
1
15
Other Decks in Programming
See All in Programming
バッチ処理を「状態の記録」から「事実の記録」へ
panda728
PRO
0
140
Le côté obscur des IA génératives
pascallemerrer
0
140
Cursorハンズオン実践!
eltociear
2
920
Six and a half ridiculous things to do with Quarkus
hollycummins
0
160
uniqueパッケージの内部実装を支えるweak pointerの話
magavel
0
970
CSC305 Lecture 06
javiergs
PRO
0
220
SpecKitでどこまでできる? コストはどれくらい?
leveragestech
0
670
Pull-Requestの内容を1クリックで動作確認可能にするワークフロー
natmark
2
490
非同期jobをtransaction内で 呼ぶなよ!絶対に呼ぶなよ!
alstrocrack
0
690
Advance Your Career with Open Source
ivargrimstad
0
470
開発生産性を上げるための生成AI活用術
starfish719
3
420
overlayPreferenceValue で実現する ピュア SwiftUI な AdMob ネイティブ広告
uhucream
0
180
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Designing for Performance
lara
610
69k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.7k
Mobile First: as difficult as doing things right
swwweet
224
10k
How STYLIGHT went responsive
nonsquared
100
5.8k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Raft: Consensus for Rubyists
vanstee
139
7.1k
Fireside Chat
paigeccino
40
3.7k
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ʜ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂʂ