부모컴포넌트 - 자식컴포넌트 이렇게 있음 (함수형 컴포넌트)
부모컴포넌트에 state가 있고 이게 자식에게 props로 전달됨 ㅇㅇ
그럼 부모 state가 바뀔때마다 자식에서 리렌더가 발생돼야하지?
물론 리렌더는 잘됨. 근데 자식 컴포넌트 안에 있는 useEffect(() => {//...} ,[]) 가 호출이 안되는거임 ㅇㅇ
자식컴포넌트가 리렌더링 된다는건 그 안에 있는 모든 함수 선언, 호출들이 다시 발생하는거잖아?
근데 자식컴포넌트가 리렌더링돼도 그 안에 있는 useEffect는 재호출이 안되는 문제임
왜이런지 아는사람있노?
꺼내는 prop에서 바로 꺼내다 보여줌?
prop받아다가 그거에 맞는 자료 db에서 꺼내다가 자식컴포의 state 업뎃함. 참고로 useEffect depengency array에 props을 추가하면 재호출 됨ㅇㅇ. 내가 궁금한건 의존성 비어놔도 함수형컴포넌트가 재호출되면서 useEffect고 재호출되야하지 않냐는 거임 ㅠ
재활용하나봐여 얘가 완존 다른 애라구 알려줄라면 key라는 파라메터를 바꿔줌 다시 유즈이펙트를 타는걸보니 말입니다
해당 댓글은 삭제되었습니다.
그럼 되긴 하거든? 근데 함수형 특징이 리렌더 되면 모든 선언이 리셋되잖아. 왜 useEffect만 예외임?
의존성 배열에 상태가 없는 빈 배열이면 useEffect가 한 번만 호출되고 상태가 있으면 해당 상태가 바뀔 때마다 호출되잖음
컴포넌트 전체가 렌더될때마다 useEffect도 호출되는줄 알았음 ㅇㅇ 근데 결국은 useEffect도 의존성 배열 있는만큼 useMemo나 useCallback처럼 메모이제이션 되는듯
useEffect 의존성 배열에 값 없으면 첫 로드될때만 실행됨 이미 부모컴포넌트에 자식 컴포넌트가 로드된 상태니까 리렌더는 되어도 useEffect는 실행이 안되는거임 애초에 부모-자식 컴포넌트랑 관계가 없는 얘기임 useEffect에 의존성 배열없이 콘솔로그 찍으면 첫 로드될때나 나오지 그 컴포넌트 안에서 state값이 바뀐다고 한들 리렌더는 되도 useEffect는 실행되지 않잖아