inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전 리액트 프로그래밍

훅 사용 시 지켜야 할 규칙

Hook 수도코드 질문.

207

jiwoo choi

작성한 질문수 6

0

hooks = []

component()

let hooksForThisComponent = hooks;

hooks = null;

..

강의에 나온 수도코드로 알아보는 훅 예제입니다.

저 흐름이 조금 이해가 안되는 부분이 있어서 질문드립니다.

제가 이해한 바로는 훅의 동작방식은 아래와 같습니다.

일단 useHook()을 사용하면, hooks 배열에 순서대로 차곡차곡 쌓입니다.

순서대로 쌓이기 때문에, 훅을 사용한 시점에서 hooks 배열에서의 인덱스 포지션 정보 또한 얻을 수 있을것입니다.  만약 컴포넌트가 setState()등으로 변경을 요청하면, 전역변수 hooks에 저장되어있는 포지션을 기준으로 그 훅 데이터에 접근할 수 있고, 상태를 성공적으로 변경할 수 있는것으로 알고 있습니다.

1) 근데 process_a_component_rendering()이라는 함수를 보면 hooks라는 전역배열을 항상 새로운 배열로 초기화시키는데요. 왜 이런 과정을 거치는걸까요? 그럼 기존까지 쌓아왔던 순서정보는 다른 렌더링 요청이 들어오면 날라가는거 아닌가요?

hooksForThisComponent라는 변수의 쓰임이 중요한것같은데, 어떤 의미로 사용된거일까요?  따로 각 등록한 hooks등을 복제하여 함수컴포넌트의 context별로 저장하기위한 변수들인건가요?

react redux

답변 1

0

이재승

안녕하세요 
hooks 변수는 하나의 컴포넌트가 사용하는 모든 훅 정보를 모으기 위한 임시 변수입니다
그렇게 모아진 훅 정보를 hooksForThisComponent 변수에 담아서 리액트가 적절하게(?) 활용하게 됩니다

답변이 됐을지 모르겠네요
수도 코드라서 각 변수에 대해 너무 큰 의미를 두지는 않으시는 게 좋을 것 같아요

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

0

499

3

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

0

515

2

setValue 함수 질문 있습니다.

0

840

1

찾아야한다 실습 문의

0

468

1

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

0

469

1

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

0

604

1

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

0

252

1

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

1

1081

2

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

0

369

2

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

0

655

1

match

1

494

1

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

0

285

1

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

0

262

1

saga 문제

0

247

1

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

0

388

2

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

0

202

1

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

0

314

1

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

1

1197

1

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

0

337

1

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

0

206

1

useImperativeHandle 질문 입니다.

0

278

1

컴파일 문의드립니다.

0

201

1

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

0

373

1

Context API vs Redux 사용 빈도

0

210

1