일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- JavaScript
- 타입스크립트
- localstorage
- array
- 알고리즘
- JS
- react localStorage
- axios
- 파이어베이스
- react
- firebase
- 브라우저
- TypeScript
- Redux
- til
- Component
- 원티드
- Reducer
- 리액트
- 프론트엔드
- Frontend
- 컴포넌트
- 프로그래머스
- 프리온보딩
- es6
- 자바스크립트
- v9
- CORS
- 비트 연산자
- state
Archives
- Today
- Total
도리쓰에러쓰
[React] 커스텀 Hook이란? 본문
1. 커스텀 Hook이란?
개발자가 스스로 커스텀 한 Hook을 말한다.
❓왜 커스텀 Hook을 제작하여 사용할까
1️⃣ 코드의 중복을 줄여 코드 가독성이 높아진다.
2️⃣ 재사용성을 높인다.
3️⃣ 변경사항이 있을 때 커스텀 Hook만 수정하면 되기 때문에 효율적으로 관리할 수 있다.
2. 코드 예시
커스텀 Hook을 사용할 때는 항상 use로 시작해야 한다.
아래 코드를 확인하여 useFetch()라는 이름의 커스텀 Hook을 확인해보자.
import { axios } from ‘axios’;
import { useState, useEffect } from ‘react’;
const useFetch = (initialUrl: string) => {
const [url, setUrl] = useState(initialUrl);
const [value, setValue] = useState(‘’);
useEffect(() => {
fetchData();
}, [url]);
const fetchData = () => {
axios.get(url).then(({ data }) => setValue(data));
};
return [value];
};
export default useFetch;
위 코드 로직은 다음과 같다.
1️⃣ initialUrl을 받아와 url에 저장한다.
2️⃣ useEffect()가 실행된다.
3️⃣ fetchData()가 실행되고 url을 통해 받은 데이터를 value에 저장한다. (데이터가 있을 때만, 없을 땐 에러를 try catch로 받는게 좋다.)
📌 커스텀 Hook은 JSX가 아닌 배열이나 객체로 리턴한다.
useFetch()라는 커스텀 Hook을 만들어 보았고, 코드에 적용해보자.
import { useFetch } from ‘hooks’;
function App() {
const [value] = useFetch(‘/api/2’);
return <p>{value}</p>;
}
export default App;
useFetch()에 url을 작성하면 데이터를 받아와 값이 value에 저장되고, JSX 안에서 사용이 가능하다.
코드를 보면 커스텀 Hook을 사용법은 useState()와 거의 유사한 것을 알 수 있다.
'React > React' 카테고리의 다른 글
[React] 상태관리 라이브러리 어떤걸 써야할까? (0) | 2022.08.18 |
---|---|
[React] 얕은 비교와 깊은 비교의 차이 (0) | 2022.08.03 |
[React] 상태 업데이트 로직을 컴포넌트와 분리할 수 있는 useReducer() (0) | 2022.07.16 |
[React] 리액트 렌더링 성능 최적화 (Performance Optimize) (0) | 2022.07.15 |
[React] 라이프사이클(Lifecycle)에 대해 (0) | 2022.07.13 |
Comments