Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
What the Hook ?
Search
Adnan A M
July 09, 2020
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
What the Hook ?
React Hooks presentation
Adnan A M
July 09, 2020
More Decks by Adnan A M
See All by Adnan A M
Abridge Coding Guidelines
adnan321
0
91
A developer's guide to wealth
adnan321
0
300
Scoping Your Storage
adnan321
2
200
What The Context ?
adnan321
2
240
Putting Work Manager To Work
adnan321
0
130
OOP To FP
adnan321
1
230
Putting Work Manager To Work
adnan321
1
220
A slice of Android Slices - droidcon London 2018
adnan321
0
140
Having fun with Kotlin fun()
adnan321
0
130
Other Decks in Programming
See All in Programming
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
650
mrbgem 三角測量 開発
ogom
0
230
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
140
SREの越境 / SRE Collaboration
y0hgi
2
300
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
130
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
150
phperだってパンチカードでコーディングしたい
o0h
PRO
0
260
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
130
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
ジョジョの世界をXRで再現する
mofurune
0
150
Kubernetes祭り #2 OP/ED
bells17
0
110
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
690
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
400
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
260
Mind Mapping
helmedeiros
1
400
Making the Leap to Tech Lead
cromwellryan
135
10k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
590
Product Roadmaps are Hard
iamctodd
55
13k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Documentation Writing (for coders)
carmenintech
77
5.6k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Discover your Explorer Soul
emna__ayadi
2
1.3k
New Earth Scene 8
popppiees
4
2.7k
Transcript
W at he oo ? A 2 1
B ck ro nd A 2 2
C as C mp ne ts 4 c c 4
s (p ) 4 b m (O s a f n ) A 2 3
W at's ro g ? 4 L c l l
4 D t m e l l m 4 I m c o 4 S o l (H /r p a.k.a W l !) A 2 4
E te H ok ! A 2 5
W at s H ok ? A 2 6
P ai o d un ti n A 2 7
H w oe t at el ? 4 N e
o a c c & s (p ) 4 N 't ' A 2 8
W at bo t ta e & l fe yc
e ? import { useState } from 'react'; import { useEffect } from 'react'; import { useYourImagination } from 'yourImagination'; A 2 9
u eS at F h s p import { useState
} from 'react'; const [isLoading, setLoading] = useState(false); const [duration, setDuration] = useState(0); <p>You ran for {duration} minutes</p> <button onClick={() => setDuration(duration + 1)}>Add 1 Min</button> A 2 1
u eS at S c o import { useState }
from 'react'; const [encounter, setEncounter] = useState({ id: uuidv4(), period: { start: moment().valueOf() }, recordings: [], }); A 2 1
u eS at G import { useState } from 'react';
const [duration, setDuration] = useState(0); <button onClick={() => setDuration(duration + 1)}>Add 1 Min</button> R s s i M ! A 2 1
u eE e t import { useEffect } from 'react';
useEffect(() => { start(); }); A 2 1
u eE e t 4 R a e r i
n h s 4 H a s & p i h c n 4 E r c a e i e h e e t e A 2 1
u eE e t - c ea up useEffect(() =>
{ EventListener.subscribe(); return function cleanup() { EventListener.unsubscribe(); } }); A 2 1
u eE e t - O ti is d I
P a import { useEffect } from 'react'; useEffect(() => { start(); }, [props.someElement]); A 2 1
R le f r oo s 4 O l o
R F n 4 D 't l h i l , c o n f n A 2 1
D n t oo ! import { useEffect } from
'react'; // ! We're breaking the rule by using a Hook in conditions if (props.micAuthorized) { useEffect(function startOp() { start(); },[props.micAuthorized]); } A 2 1
R le f r oo s import { useEffect }
from 'react'; useEffect(() => { if (props.micAuthorized) { start(); } }, [props.micAuthorized]); A 2 1
C st m oo s import { BackHandler } from
'react-native'; componentDidMount() { this.backHandler = BackHandler.addEventListener('hardwareBackPress', this.handleAndroidBackPress); } componentWillUnmount() { this.backHandler.remove(); } A 2 2
C st m oo s import { useEffect } from
'react'; import { BackHandler } from 'react-native'; function useBackButton(handler) { useEffect(() => { BackHandler.addEventListener('hardwareBackPress', handler); return () => { BackHandler.removeEventListener('hardwareBackPress',handler); }; }, [handler]); } useBackButton(handleAndroidBackPress); A 2 2
P rt ng ho gh s... ! 4 T a
t s n n r a l l ☠ 4 T e e s n a u a e r " 4 S s c n r o e e y f n c n A 2 2
T an y u ! A 2 2