
의존성 배열은 useEffect 훅에 입력하는 두 번째 매개변수이다.
의존성 배열은 잘못 관리하면 쉽게 버그로 이어지기 때문에 입력하지 않는게 좋지만
필요에 있어 입력할 일이 생긴다.
그 필요에 의한 경우를 살펴보자.
👇
useEffect(() => {
fetchUser(userId).then((data) => setUser(data));
});
위의 코드의 fetchUser가 렌더링될 때마다 호출되기 때문에 비효율적이다.
이럴때 의존성배열을 사용해줌
👇
useEffect(() => {
fetchUser(userId).then((data) => setUser(data));
}, [userId]);
의존성 배열에 userId 상태 값을 넣으면 userId가 변경될 때만 fetchUser 함수가 호출된다.
(추후에 새로 추가되는 변수가 있다면 그 변수도 의존성 배열에 넣어주어야 함)
보통은 처음 렌더링 될 때 한번만 데이터를 불러오기위해 [] 빈배열로 많이 사용하지만,
우리가 장바구니같은 기능을 만든다고 할 때
(장바구니는 물건에 대한 어떠한 데이터를 불러와야만 장바구니에 물건을 담을 수 있다.)
만약 의존성배열을 []빈배열로 놔둔다면
장바구니에 물건을 넣어도 []빈배열은 최초 실행 1번만 렌더링되기때문에
아무런 변화가 일어나지않는다. === 물건이 담기지않음
그래서 ?
⭐이럴땐 의존성배열에 장바구니실행 코드를 넣어주면
장바구니 기능을 만들 수 있다.
'개발이야기 > React.js' 카테고리의 다른 글
[React] NavLink (0) | 2022.06.22 |
---|---|
[React] 조건부 렌더링 (0) | 2022.05.28 |
[React] useEffect (feat. 무한루프) (0) | 2022.05.28 |
[React] 배열에서 key 를 넣어줘야 하는 이유? (1) | 2022.05.28 |
[React] filter () (0) | 2022.05.28 |