inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전 리액트 프로그래밍

useEffect 실전 활용법2

질문 드립니다!

해결된 질문

181

Hanwook Kim

작성한 질문수 1

1

안녕하세요 재승님!

영상 참 재밌고 유익하게 보고 있습니다.

useEffect에 종속성 배열을 없애고 사용하는 활용법을 알려주셨는데요. 

여기서 궁금증이 생각나서 글을 쓰게 되었습니다..

종속성 배열을 없애고 콜백함수 내부에서 조건을 통해 로직을 핸들링하는 경우에 useEffect가 리액트에 의해 실행? 될텐데요.

이러한 경우 콜백함수는 매번 호출되고 내부로직에서 조건을 분기할 것 같아요. 제가 이해한 내용으로는 이 경우가 조금 불필요한 동작이라고 생각이 드는데요.

여기서 종속성배열과 콜백함수 내부 조건을 함께 사용하면 좋을 것 같다고 생각 했어요. 그때 종속성배열을 관리하는 리소스와 비교하였을 때 어느쪽에 중점을 두어 프로그래밍하면 좋을지 궁금증이 생겼습니다...

-> 그런데 제가 생각한 것이 틀렸다면 useEffect의 실행동작을 잘 이해하지 못했을 것 같은데요. 리액트에 의해서 해당 useEffect 훅의 동작 순서가 온다면 종속성 배열로 콜백함수의 불변성만 지켜주는 것인가요? 그렇다면 매번 콜백함수를 실행해서 별로 상관 없을 것 같기두 하구요.. 

여러개의 종속성 값으로 useEffect나 useMemo, useCallback류의 훅이 여러번 호출되는 것 때문에 조금 스트레스 였는데.. 이번 강의를 보고 코드 개선 아이디어에 도움이 많이 되었습니다. 주절주절 쓰다보니 길어졌네요.. 두서없이 글로만 쓰려니 정리가 안되고 있슴다ㅎㅎ; 양해 부탁드립니다;

후배에게 답변해주시는 것 같이 편하게 답변해주시면 좋겠습니다.

항상 감사드립니다!!

react redux

답변 1

1

이재승

안녕하세요
조건에 따라 코드 실행 여부를 결정할 때,

1. 의존성 배열로 컨트롤
2. 제가 언급한 함수 내부 조건으로 컨트롤

중에 뭐가 더 나은지 문의하신 것 같습니다.
성능만 놓고 보자면 말씀하신대로 더 적게 함수를 호출하는 1번이 낫습니다
하지만 거의 모든 프로젝트에서 이로인한 성능 차이를 느끼기는 힘들 것 같습니다

강의에서 언급한 것처럼 1번은 생산성에 안좋은 경우가 종종 있습니다
예를 들어, 속성값으로 받은 함수를 부수효과 함수 내부에서 사용하는 경우입니다
그 함수를 의존성 배열에 넣는 순간, 그 함수의 레퍼런스가 변하지 않도록 잘 관리해야합니다
그래서 개인적으로는 2번을 추천합니다

그렇다고 무조건 2번만 사용할 수 있는것은 아니고, 의존성 배열을 입력해야하면서 속성값으로 받은 함수를 부수효과 함수 내부에서 사용해야만 하는 경우가 있습니다
이럴 때는 강의에서 언급한대로 속성값으로 받은 함수를 ref 로 전달하는 방식을 사용합니다

0

Hanwook Kim

답변해주셔서 감사합니다

자동완성기능이 안되네요 ..

0

532

3

화면에 에러가나네요 ...

0

538

2

setValue 함수 질문 있습니다.

0

855

1

찾아야한다 실습 문의

0

484

1

훅 기초 익히기 - 배치 처리와 순차적 처리의 차이

0

492

1

cra, next.js 관련 질문 드립니다!

0

613

1

useState 배열 비구조화 문법 질문!

0

260

1

Uncaught TypeError: Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'

1

1091

2

Saga 오류 이거 혹시 왜이런지 알수 있을까요?

0

379

2

http://localhost:3001/user/search?keyword=u 이걸로 데이터를 보는데 저는 사이트에 연결할 수 없다고 나오네요

0

680

1

match

1

499

1

버튼이 생성되지 않습니다 .

0

288

1

혹시 import 옆에 파일 사이즈 표시 어떻게 하나요?

0

263

1

saga 문제

0

250

1

에러가 발생하는데 이유가뭘까요..?

0

396

2

선생님과 똑같이 했는데 다 rendering 됩니다.

0

209

1

컴포넌트와 컨테이너의 기준

0

322

1

커스텀훅의 개념과 함수차이

1

1204

1

useEffect 실전 활용법(1) 강의에서 질문있습니다.

0

344

1

리덕스, 사가파일들의 관리

0

212

1

useImperativeHandle 질문 입니다.

0

286

1

컴파일 문의드립니다.

0

211

1

React.memo 관련 질문이 있습니다.

0

380

1

Context API vs Redux 사용 빈도

0

218

1