- useState
const [filter, setFilter] = useState('')
- useEffect
useEffect(() => { return willUnmountCallback }, []) // '[]' prevents 'fn' from running on update. Executes on mount and willUnmount
- useReducer
const [state, setState] = useReducer((state, newState) => ({ ...state, ...newState }), initialState)
- useContext
const { logout } = useContext(GitHubContext)
React.lazy(() => <Component />) // Must have <Suspense> as HOC