use
로 시작하도록 명명useState
useEffect
useContext
등)을 조합하여 생성import React, { useState, useEffect } from 'react';
function Profile() {
const [data, setData] = useState(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
const url = 'https://api.example.com/data';
useEffect(() => {
async function fetchData() {
try {
setLoading(true); // 로딩 상태 시작
const response = await fetch(url);
const result = await response.json();
setData(result); // 데이터 설정
} catch (error) {
setError(error); // 오류 처리
} finally {
setLoading(false); // 로딩 상태 종료
}
}
fetchData();
}, [url]); // url이 변경될 때마다 이펙트 실행
if (loading) return <div>Loading...</div>; // 로딩 중 표시
if (error) return <div>Error: {error.message}</div>; // 오류 표시
return <div>{JSON.stringify(data)}</div>; // 데이터 표시
}
export default Profile;
function useFetch(url) {
const [data, setData] = useState(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
useEffect(() => {
async function fetchData() {
try {
const response = await fetch(url);
const result = await response.json();
setData(result);
} catch (error) {
setError(error);
} finally {
setLoading(false);
}
}
fetchData();
}, [url]);
return { data, loading, error };
const { data, loading, error } = useFetch('https://api.example.com/data');
useEffect
와 같은 훅 사용시 예상치 못한 버그 더 자주 발생위와 같은 부분을 염두하고 사용할 것 !
커스텀 훅의 장단점에 비교해주셔서 쉽게 읽히는 아티클이였어요! 특히 주의사항 부분을 잘 알지 못하였는데, 이번 기회를 통해 배워갑니다 👍
예시 코드와 상황도 작성해주신 덕분에 잘 이해가네요 ㅎㅎ
좋은 글 감사합니다 !
사용하지 않는 경우와 사용하는 경우의 예제 코드를 비교해 보여주셔서 이해가 더 쉬웠던 것 같아요! 👍 중요한 내용만 쏙쏙 골라 간결하게 아티클을 이용해 주셔서 한 눈에 이해하기 너무 좋았습니다... 🫶 커스텀 훅의 장점만 항상 생각했는데, 생각보다 단점이 많다는 걸 아티클을 통해 배워갑니다!! 깔끔한 아티클 감사해요~ 🩷
Custom Hook 사용 전과 후로 코드 예시를 비교해주어서 Custom Hook을 왜 사용하는지 명확하게 이해할 수 있었어요! 작성해주신 주의사항 고려해서 다 Custom Hook을 사용하게 될 때 고려해서 사용해야겠어요. 깔끔, 명료한 아티클 감사합니다.
Custom Hook의 장단점에 대해 간결하게 설명하면서, 예시도 들어주셔서 확실히 어떤 식으로 쓰이는 지 알 수 있었던 것 같아요! 특히 단점(주의점)들을 자세하게 설명해주셔서 커스텀 훅을 사용할 때 좀 더 신경 쓸 수 있을 것 같습니다. 잘 읽고 갑니다! 고생하셨어요 😊