• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

라이프사이클 질문!

24.03.19 12:26 작성 조회수 53

0

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

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

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

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

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

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

답변 1

답변을 작성해보세요.

1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.03.19

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

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

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

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

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

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

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

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

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

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

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

경이님의 프로필

경이

질문자

2024.03.19

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

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