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
ReactHooks_CustomHookAndEncapsulation
Search
sonatard
July 29, 2019
Programming
7
790
ReactHooks_CustomHookAndEncapsulation
sonatard
July 29, 2019
Tweet
Share
More Decks by sonatard
See All by sonatard
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
420
Iteratorでページネーションを実現する
sonatard
3
1.3k
Goのエラースタックトレースの歴史と今後
sonatard
16
13k
Go 1.22のEnhanced ServeMux chiから移行できるのか?
sonatard
4
570
GraphQL実践ノウハウv2
sonatard
17
2.9k
プロトコル、インターフェースとしてのGraphQL
sonatard
4
2.1k
GraphQL実践ノウハウ/graphql-knowhow
sonatard
40
12k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Go1.18から導入されるnetip package/netip-package
sonatard
2
1.1k
Other Decks in Programming
See All in Programming
primeNumberでのRBS導入の現在 && RBS::Traceでinline RBSを拡充してみた
mnmandahalf
0
200
鯛変だったRubyKaigi 2025 ── それでも楽しかった!
pndcat
0
130
TypeScript だけを書いて Tauri でデスクトップアプリを作ろう / Tauri with only TypeScript
tris5572
2
480
OpenNext + Hono on Cloudflare でイマドキWeb開発スタックを実現する
rokuosan
0
100
TypeScript Language Service Plugin で CSS Modules の開発体験を改善する
mizdra
PRO
3
2.1k
ts-morph実践:型を利用するcodemodのテクニック
ypresto
1
480
抽象データ型について学んだ
ryounasso
0
200
AIコーディングの本質は“コード“ではなく“構造“だった / The essence of AI coding is not “code” but "structure
seike460
PRO
2
690
Cloudflare Workersで進めるリモートMCP活用
syumai
13
1.9k
Doma で目指す ORM 最適解
nakamura_to
1
160
What Spring Developers Should Know About Jakarta EE
ivargrimstad
1
410
try-catchを使わないエラーハンドリング!? PHPでResult型の考え方を取り入れてみよう
kajitack
3
160
Featured
See All Featured
A Tale of Four Properties
chriscoyier
159
23k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
450
The Power of CSS Pseudo Elements
geoffreycrofte
76
5.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
5
600
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
122
52k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Visualization
eitanlees
146
16k
Thoughts on Productivity
jonyablonski
69
4.7k
It's Worth the Effort
3n
184
28k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Transcript
1 3FBDU)PPLTΧελϜϑοΫͱΧϓηϧԽ 3FBDUKTNFFUVQॳ৺ऀܴ-5ձ !TPOBUBSE
D Technologies ͦͳଠ @sonatard • Linux Server and Network Engineer
# System C • Wireless LAN Module Simulator # Cݴޠ • TCP/IP protocol stack on RTOS • TCP Offload Engine # Go • Google App Engine # TypeScript • React+Redux
• R e a c t H o o k
s ͱ • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 1 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 2 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 3 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 4 • · ͱ Ί
4 3FBDU)PPLT w 3FBDU)PPLTɺ3FBDUͰՃ͞Εͨ৽ػೳɻ w TUBUFͳͲͷ3FBDUͷػೳΛɺΫϥεΛॻ͔ͣʹ͑ΔΑ͏ʹͳΔɻ
5 3FBDU)PPLT͕ఏڙ͢Δؔ w 3FBDU)PPLTɺVTF4UBUFҎ֎ʹVTF&⒎FDUɺVTF$POUFYUͳͲ߹ܭݸͷެ͕ࣜఏڙ ͢Δ͕ؔଘࡏ͢Δɻ w ࠓճVTF4UBUFΛத৺ʹઆ໌͠·͢ɻ
6 ΧελϜϑοΫͱΧϓηϧԽ w ΧελϜϑοΫͱಠࣗͷϑοΫΛ࡞͢Δ͜ͱɻ w ίϯϙʔωϯτ͔ΒϩδοΫΛநग़͢Δ͜ͱͰɺϩδοΫͷ࠶ར༻ੑ্͕͢Δɻ w ঢ়ଶͱ࣮ͷৄࡉΛΧϓηϧԽͰ͖ɺίϯϙʔωϯτʹඞཁͳͱΠϯλʔϑΣʔεͩ ͚Λެ։͢Δ͜ͱ͕ՄೳͱͳΔɻ
• R e a c t H o o k
s ͱ • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 1 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 2 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 3 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 4 • · ͱ Ί
8 ΧελϜϑοΫͷ࣮ྫ࣮ߦΠϝʔδ w ίϯϙʔωϯτؒͷϖʔδωʔγϣϯΛ࣮͢ΔVTF-PDBM)JTUPSZΧελϜϑοΫɻ w ϒϥβͷIJTUPSZ"1*ͷΑ͏ͳͷɻ ࣍ ࣍ճ Δճ ϥεττοϓϥετ
Δճ ཤྺΛফڈ
9 ΧελϜϑοΫͷ࣮ྫW w ΧελϜϑοΫະ༻ίϯϙʔωϯτͱϩδοΫ͕Ұॹʹهड़͞Ε͍ͯΔ
• R e a c t H o o k
s ͱ • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 1 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 2 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 3 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 4 • · ͱ Ί
11 ΧελϜϑοΫͷ࣮ྫW w ίϯϙʔωϯτ͔ΒϩδοΫΛΧελϜϑοΫʹ͢Δɻ w ίϯϙʔωϯτ͕ඞཁͳใ͚ͩΛฦ͠ɺଞΧελϜϑοΫʹӅṭ͢Δɻ w ίϯϙʔωϯτ͕ඞཁͳͷ w ɺDVSSFOU1BHF
w ૢ࡞ɺ5PQɺ/FYUɺ#BDLɺ-BTUɺ3FTFU w ˞ཤྺҰཡσόοάҎ֎ʹෆཁͳͷͰฦ͞ͳ͍ɻ
12 ΧελϜϑοΫͷ࣮ྫW w ΧελϜϑοΫ͔ΒෆཁͳIJTUPSZฦͣ͞ɺඞཁͳͱૢ࡞͚ͩΛฦ͢ɻ
13 ΧελϜϑοΫͷ࣮ྫW w ίϯϙʔωϯτ͕7JFXʹϑΥʔΧεͨ͠ίʔυͱͳΔ
• R e a c t H o o k
s ͱ • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 1 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 2 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 3 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 4 • · ͱ Ί
15 ΧελϜϑοΫͷ࣮ྫW w ࠓճͷૢ࡞ʹରͯ͠ΠϯλʔϑΣʔεΛఆٛ͢Δɻ
16 ΧελϜϑοΫͷ࣮ྫW w Ұ࿈ͷૢ࡞͕ؔ࿈͕͋Δ͜ͱ͕Θ͔Γ͘͢ͳΔɻ w ଞͷίϯϙʔωϯτʹରͯ͠ૢ࡞Λ͢͜ͱ༰қʹͳΔɻ
• R e a c t H o o k
s ͱ • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 1 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 2 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 3 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 4 • · ͱ Ί
18 ΧελϜϑοΫͷ࣮ྫW w 4UBDL -*'0 ͷσʔλߏΛΧελϜϑοΫͱͯ͠Γग़͢ɻ w ΧελϜϑοΫଟஈߏ͕ՄೳͳͷͰɺVTF-PDBM)JTUPSZ͔ΒVTF4UBDLΛݺͿɻ
19 ΧελϜϑοΫͷ࣮ྫW w VTF-PDBM)JTUPSZ͕4UBDLͷσʔλߏΛҙࣝͤͣɺը໘ભҠͷ੍ޚ͚ͩΛϩδοΫͱ͠ ͯ࣋ͭΑ͏ʹͳΔɻ
• R e a c t H o o k
s ͱ • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 1 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 2 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 3 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 4 • · ͱ Ί
21 ΧελϜϑοΫͷ࣮ྫW w ίϯϙʔωϯτͷ࠶ඳըΛճආ͢ΔͨΊʹɺVTF$BMMCBDLͱVTF.FNPΛར༻͢Δɻ w VTF-PDBM)JTUPSZΛར༻͍ͯ͠Δίϯϙʔωϯτ͕࣮ߦ͞ΕΔͨͼʹɺίʔϧόοΫఆ ͕ٛ࠶࣮ߦ͞ΕΔ͜ͱΛճආ͢Δɻ w MPDBM)JTUPSZΛผͷίϯϙʔωϯτʹ͍ͯ͠Δ߹ͳͲʹҙຯ͕͋Δɻ
• R e a c t H o o k
s ͱ • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 1 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 2 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 3 • Χ ε λ Ϝ ϑ ο Ϋ ͷ ࣮ ྫ v 4 • · ͱ Ί
23 ΧελϜϑοΫͱΫϥε w ͜ͷܗʹԿ͔ݟ͕֮͑͋ΔɻɻɻΫϥεʂ w Ϋϥε w ঢ়ଶϝϯόϑΟʔϧυ w ૢ࡞ϝιου
w ॳظԽίϯετϥΫλ w ΧελϜϑοΫ w ঢ়ଶVTF4UBUF w ૢ࡞ؔ w ॳظԽϑοΫͷҾ
24 ·ͱΊ w 3FBDU)PPLTͷΧελϜϑοΫͷొʹΑΓɺΦϒδΣΫτࢦͷϊϋ͕׆༻Ͱ͖ ΔΑ͏ʹͳͬͨɻ w దͳઃܭʹΑΓҎԼ͕࣮ݱՄೳ w ୯Ұͷݪଇ 431
ɺใӅṭ ΧϓηϧԽ w Մಡੑͷ্ɺ࠶ར༻ੑͷ্
25 ·ͱΊ w ࠷େͷϝϦοτ w ίϯϙʔωϯτʹґଘ͠ͳ͍ϩδοΫ͚͕ͩ044ͱͯ͠ڞ༗͞ΕΔΑ͏ʹͳͬͨ w ࠓޙঢ়ଶΛ࣋ͭϩδοΫΛॻ͘લʹɺݕࡧ͢Δ͜ͱΛ͓͢͢Ί͠·͢ɻ w IUUQTHJUIVCDPNTUSFBNJDISFBDUVTF
w IUUQTOJLHSBGHJUIVCJPSFBDUIPPLT w IUUQTVTFIPPLTDPN