Hook은 기본적으로 Javascript 함수이다.
리액트에서 제공하는 useState, useEffect와 같은 기본 Hook과
직접 만드는 커스텀 Hook 모두 함수로 정의된다.
Hook은 일반 함수와 같이 useFunction()
형태로 사용한다.
다만,
function useUser(id) { // Custom Hook
const [user, setUser] = useState(null);
const login = (username, password) => {
// ...
if(로그인 성공) {
setUser(userData);
}
const logout = () => {
// ...
setUser(null);
}
return [user, login, logout];
}
function Nav() { // 함수형 컴포넌트에서 일반 함수처럼 Custom Hook 사용
const [user, login, logout] = useUser();
// ...
}