@lihautan
@reknowledgeable
overreacted.io
kentcdodds.com
https://reactjs.org/docs/hooks-reference.html
1st render
1st render
FooBar
1st render
FooBar
1st render
FooBar
1st render
FooBar
1st render
FooBar
null
1st render
FooBar
null
currentHook
memoizedState
1st render
FooBar
state
currentHook
null
value: 0
setter: fn
memoizedState
1st render
FooBar
state
currentHook
null
value: 0
setter: fn
memoizedState
1st render
FooBar
state
currentHook
value: 0
setter: fn
effect
null
unsubscribe: fn
memoizedState
1st render
FooBar
state
currentHook
value: 0
setter: fn
effect
null
unsubscribe: fn
memoizedState
1st render
FooBar
state
currentHook
value: 0
setter: fn
effect
unsubscribe: fn
memo
null
memoizedFn: fn
deps: [0]
memoizedState
1st render
FooBar
state
currentHook
value: 0
setter: fn
effect
unsubscribe: fn
memo
null
memoizedFn: fn
deps: [0]
memoizedState
FooBar
state
currentHook
value: 0
setter: fn
effect
unsubscribe: fn
memo
null
memoizedFn: fn
deps: [0]
memoizedState
2nd render
FooBar
state
currentHook
value: 0
setter: fn
effect
unsubscribe: fn
memo
null
memoizedFn: fn
deps: [0]
memoizedState
FooBar
state
currentHook
value: 0
setter: fn
effect
unsubscribe: fn
memo
null
memoizedFn: fn
deps: [0]
2nd render
memoizedState
FooBar
state
currentHook
value: 0
setter: fn
effect
unsubscribe: fn
memo
null
memoizedFn: fn
deps: [0]
2nd render
memoizedState
FooBar
state
currentHook
value: 0
setter: fn
effect
unsubscribe: fn*
memo
null
memoizedFn: fn
deps: [0]
2nd render
memoizedState
FooBar
state
currentHook
value: 0
setter: fn
effect
unsubscribe: fn*
memo
null
memoizedFn: fn
deps: [0]
2nd render
memoizedState
FooBar
state
currentHook
value: 0
setter: fn
effect
unsubscribe: fn*
memo
null
memoizedFn: fn
deps: [0]
2nd render
memoizedState
FooBar
state
currentHook
value: 0
setter: fn
effect
unsubscribe: fn*
memo
null
memoizedFn: fn
deps: [0]
memoizedState
FooBar
state
currentHook
value: 0
setter: fn
effect
unsubscribe: fn*
memo
null
setCounter(3)
memoizedFn: fn
deps: [0]
memoizedState
FooBar
state
currentHook
value: 3
setter: fn
effect
unsubscribe: fn*
memo
null
setCounter(3)
memoizedFn: fn
deps: [0]
memoizedState
FooBar
state
currentHook
value: 3
setter: fn
effect
unsubscribe: fn*
memo
null
memoizedFn: fn
deps: [0]
3rd render
memoizedState
FooBar
state
currentHook
value: 3
setter: fn
effect
unsubscribe: fn**
memo
null
memoizedFn: fn
deps: [0]
3rd render
memoizedState
FooBar
state
currentHook
value: 3
setter: fn
effect
unsubscribe: fn**
memo
null
memoizedFn: fn
deps: [0]
3rd render
memoizedState
FooBar
state
currentHook
value: 3
setter: fn
effect
unsubscribe: fn**
memo
null
memoizedFn: fn*
deps: [3]
3rd render
memoizedState
FooBar
state
currentHook
value: 3
setter: fn
effect
unsubscribe: fn**
memo
null
memoizedFn: fn*
deps: [3]
3rd render
memoizedState
FooBar
state
currentHook
value: 3
setter: fn
effect
unsubscribe: fn**
memo
null
memoizedFn: fn*
deps: [3]
memoizedState
no hooks in:
FooBar
state
currentHook
value: 3
setter: fn
effect
unsubscribe: fn**
memo
null
memoizedFn: fn*
deps: [3]
memoizedState
FooBar
state
currentHook
value: 3
setter: fn
effect
unsubscribe: fn**
memo
null
memoizedFn: fn*
deps: [3]
memoizedState
currentHook
null
currentHook
null