inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

7.1) 라이프사이클이란?

라이프사이클 질문!

해결된 질문

201

경이

작성한 질문수 15

0

안녕하세요 라이프 사이클에대해서 궁금하게 있어 질문 드립니다.

처음에 컴포넌트가 빌드 되었을때(초기랜더링) 마운트 되었다 라고 표현하고,

이미 빌드가 된 컴포넌트에서 반응형 state로 인해 리랜더링이 되면 업데이트,

그리고 컴포넌트가 제거되면 언마운트라고 알고 있습니다 !

혹시 그렇다면 업데이트가 이루어질때 컴포넌트가 리랜더링 되는데, state가 초기화 되지 않는걸 보면 컴포넌트가 삭제되지 않고 리랜더링 되는것 같다는 추측을 하고 있습니다.

만약 그렇다면 컴포넌트가 어떻게 삭제되지 않고 리랜더링을 진행 할 수 있는건가요 ?

javascript react node.js

답변 1

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

경이님, 리액트 컴포넌트의 라이프사이클에 대한 질문을 주셨네요. 컴포넌트가 업데이트될 때 상태(state)가 초기화되지 않고 유지되는 이유에 대해 궁금해 하시는 것 같습니다.

리액트 컴포넌트가 업데이트 되어 리렌더링 될 때, 이는 실제 DOM에 존재하는 컴포넌트의 인스턴스가 삭제되고 다시 생성되는 것이 아닌, 리액트 내부의 ‘가상 DOM’을 통해 변한 부분만 확인하여 실제 DOM에 반영하는 최소한의 변경을 하게 됩니다. 따라서, 컴포넌트의 상태(state)는 리렌더링 과정에서 사라지지 않고 유지되는 것입니다.

같은 강의 내에서 이와 유사한 질문에 대한 답변을 찾았으니, 이를 통해 더욱 구체적인 설명을 얻을 수 있을 것 같습니다.

  1. 컴포넌트의 상태(state)는 언마운트가 되지 않는 한 유지됩니다. 컴포넌트가 언마운트 되면 상태도 함께 사라지는데, 여기서 라이프사이클에 따른 state에 대한 질문에서 자세한 설명을 볼 수 있습니다.

  2. 컴포넌트가 리렌더링 될 때 상태가 유지되는 메커니즘에 대해 궁금하신 경우, 리렌더링 동작에 따른 상태의 변화에서 useState hook의 클로저를 활용한 동작 원리에 대한 설명을 확인하실 수 있습니다.

  3. 컴포넌트의 리렌더링이 될 때 다시 마운트되는 것이 아닌지에 대한 질문도 있으셨는데, 이에 대한 답변은 렌더링이 2번 되는 이유에서 찾아보실 수 있습니다.

혹시 이외에 추가로 궁금한 점이 있으시다면, 이어서 질문해 주시면 감사드리겠습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

1

경이

아 처음에 빌드가 되고 가상돔이 변하면서 수정된 내용을 실제 dom에 업데이트 시키는 개념이라는 거죠 !! 이해했습니다 ..!!

0

이정환 Winterlood

오잉 이상하네요 AI 인턴이 이렇게나 빨리 답변을 달다니 ..!
넵 말씀해주신 내용이 맞습니다 최종적으로 가상돔의 내용을 실제 DOM에 반영하게 되면서 업데이트가 이루어지게 됩니다.
또 AI 인턴이 이야기 해 준대로 컴포넌트가 다시 호출되어 리렌더링 된다고 해도 기존에 렌더링 되어 있던 컴포넌트가 제거되는 것은 아닙니다! 따라서 언마운트 이후에 다시 새롭게 마운트 되는것이 아닌 그저 데이터가 리프레시 되는 과정이므로 그렇습니다!

useEffect와 lifecycle문의

0

32

2

프론트엔드 학습 수준 문의

0

44

2

리액트 챕터별 코드에서 eslint 설정파일이 없어요

0

51

2

데이터 로딩중 화면만 계속 나와요!!

0

56

2

퍼블리셔일경우 어느정도 수준까지 강의를 들어야할까요

0

81

2

이후의 커리큘럼 문의

0

102

2

실슬환경 설정에서 save후 console.log 부분이 새로고침이 안되는현상입니다.

0

50

2

최적화 관련 질문있습니다 (useMemo 등)

0

85

3

프로바이더 컴포넌트의 위치는 어떤 기준인가요?

1

82

3

Date 객체에 관련하여 질문드립니다.

0

86

2

리액트 개정판 교재 질문

0

60

2

예제코드가 안나와요!

0

78

2

select a variant 선택에서 javascript와 javascript+react compiler 중 무엇을 선택해야하나요? com

0

110

2

onMouseEnter 관련 문의 드립니다

0

93

3

배열의 렌더링 관련 질문 드립니다.

0

73

2

2:40초 refObj를 콘솔로 출력시 오류가 발생합니다.

0

113

2

TS, 리액트 강의중에 뭘 먼저 수강하는게 좋을까요?

0

137

2

useCallback 적용한 onCreate, onUpdate, onDelete 함수..

0

71

1

vs code 자동완성관련 문의

0

114

2

91강 useEffect내에서 상태변화함수 호출시 발생하는 에러

1

182

2

87강 필터 함수 질문

0

69

2

useRef, useState count 비교

0

67

2

안된다고했던 이유가 무엇이었는지 모르겠습니다

0

91

2

85강에서 객체를 왜 클래스로 만들어서 new 하지 않는건지 궁금합니다.

0

76

2