React의 생명주기(Life Cycle)의 중요성

2024. 2. 20. 04:58· React
목차
  1. 초기화 단계 : Constructor
  2. 마운팅 단계
  3. 업데이트 단계
  4. 언마운팅 단계
  5. React Hooks 소개
  6. useState 상태 관리
  7. useEffect 생명주기 이벤트
  8. Hooks의 중요성
  9. 결론
  10. 참고 문서

React 생명주기(Life Cycle)는 컴포넌트가 DOM에 삽입되는 순간부터 제거되는 순간까지의 과정을 말합니다. 이 과정은 여러 단계로 나뉘며, 각 단계는 특정 작업을 수행하거나 반응할 수 있는 기회를 제공합니다.

초기화 단계 : Constructor

컴포넌트의 생성자 함수에서 초기 상태를 설정하고, 종종 컴포넌트의 이벤트 핸들러를 바인딩 합니다. 이 단계는 컴폰넌트의 생명주기에서 단 한번만 발생합니다.

import React, { Component } from 'react';

class ExampleComponent extends Component {
  constructor(props) {
    super(props);
    // 초기 상태 설정
    this.state = {
      count: 0
    };
  }

  componentDidMount() {
    // 컴포넌트가 마운트된 후 실행될 코드
    console.log('Component did mount');
  }

  render() {
    return (
      <div>
        <p>{this.state.count}</p>
        <button onClick={() => this.setState({ count: this.state.count + 1 })}>
          Increment
        </button>
      </div>
    );
  }
}

마운팅 단계

컴포넌트가 DOM에 삽입되는 단계입니다. componentDidMount 메소드가 이 단계에서 호출됩니다.

업데이트 단계

컴포넌트는 새로운 props를 받거나 setState를 통해 상태가 변경될 때 업데이트 됩니다. 

componentDidUpdate(prevProps, prevState) {
  if (this.state.count !== prevState.count) {
    console.log('Count state has changed.');
  }
}

언마운팅 단계

컴포넌트가 DOM에서 제거되는 시점을 얘기합니다.

componentWillUnmount() {
  console.log('Component will unmount');
  // 이벤트 리스너 제거 등의 정리 작업
}

 

그렇다면 생명주기는 클래스 컴포넌트에서만 의미가 있는 것일까?

React 생명주기와 관련하여 클래스 컴포넌트에서의 사용만 가능했던 시절이 있었지만, React 16.8버전에서 도입된 Hooks API를 통해 함수형 컴포넌트에서도 상태 관리와 생명주기 기능을 사용할 수 있게 되었습니다. 

Hooks 는 함수형 컴포넌트를 사용하는 React 개발에서 중요한 전환점이 되었으며, 이를 통해 코드의 재사용성을 높이고 컴포넌트 구조를 더 간결하게 만들 수 있습니다.

React Hooks 소개

Hooks는 함수형 컴포넌트에서 상태(state)와 React의 기타 기능들을 'hook into' 할 수 있도록 해줍니다. 그 중 가장 자주 사용되는 Hooks에는 "useState", "useEffect", "useContext" 등이 있으며, 이들을 사용하여 클래스 컴포넌트에서 가능했던 대부분의 기능을 구현할 수 있습니다.

 

useState 상태 관리

useState 는 함수형 컴포넌트에서 상태를 관리할 수 있게 해줍니다.

import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>
        Click me
      </button>
    </div>
  );
}

setCount라는 setter를 통해 업데이트하고 count라는 getter를 통해 가져올 수 있습니다.

 

useEffect 생명주기 이벤트

useEffect Hook은 앞서 얘기한 클래스 컴포넌트의 componentDidMount, componentDidUpdate, componentWillUnmount 생명주기 메소드의 기능을 합쳐 놓은 것과 유사합니다. 이를 사용하여 데이터의 fetching이나 구독,좋아요 기능 설정 등 그외 부수 효과(side effects)를 처리할 수 있습니다.

 

Hooks의 중요성

Hooks의 도입은 함수형 컴포넌트에서도 상태 관리와 생명주기 기능을 간결하게 사용할 수 있게 되면서 React 개발자들을 기존의 클래스 컴포넌트의 복잡성을 피하면서도 모든 기능을 사용할 수 있게 되었습니다. Hooks는 또한 컴포넌트간 상태 로직의 재사용을 용이하게 만들어, 코드의 유지 보수성과 가독성을 높여주는 장점이 있습니다.

 

결론

React 생명주기 메소드를 활용하면 컴포넌트의 생성, 업데이트, 제거 과정을 효과적으로 관리할 수 있다는 장점이 있습니다. 이를 통해 성능 최적화를 이룰 수 있으며 React의 생명주기를 이해하고 이를 바탕으로 효과적인 컴포넌트를 설계하는 것이 React 개발의 핵심이지 않을까 싶습니다.

 

또한 Hooks의 도입으로도 개발자가 좀 더 쉽게 다가갈수 있었고 지금의 React 트렌드가 되지 않았나 싶습니다. 함수형 컴포넌트와 Hooks의 사용은 현재까지도 React 개발의 트렌드로 자리잡고 있으며, 이에 대한 깊은 이해 또한 모든 React 개발자에게 꼭 필요한 기술이 되었습니다.

 

참고 문서

https://medium.com/@ralph1786/intro-to-react-component-lifecycle-ac52bf6340c

'React' 카테고리의 다른 글

key 로 풀어내는 React 렌더링 퍼즐  (0) 2024.02.12
React와 Virtual DOM 효율적인 렌더링이란?  (1) 2024.02.04
  1. 초기화 단계 : Constructor
  2. 마운팅 단계
  3. 업데이트 단계
  4. 언마운팅 단계
  5. React Hooks 소개
  6. useState 상태 관리
  7. useEffect 생명주기 이벤트
  8. Hooks의 중요성
  9. 결론
  10. 참고 문서
'React' 카테고리의 다른 글
  • key 로 풀어내는 React 렌더링 퍼즐
  • React와 Virtual DOM 효율적인 렌더링이란?
trophy98
trophy98
새내기 프론트엔드 개발자의 걸음마 때기
trophy98
TrophyJourney
trophy98
전체
오늘
어제
  • 분류 전체보기 (31)
    • Javascript (4)
    • React (3)
    • 회고록 (1)
    • JS 알고리즘 문제풀이 (5)
    • 자유게시판 (0)
    • 우아한테크코스 (5)
    • 코드잇 스프린트 (1)
    • HTML (1)
    • CSS (2)
    • GIT (2)
    • CS,NetWork (2)
    • Nextjs (2)
    • 프로젝트 (2)
    • 인프라 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 중복선언
  • 자바스크립트 알고리즘
  • CSR
  • 자바스크립트
  • Image component
  • 프론트엔드
  • css
  • 우테코
  • os 설정
  • next.js
  • js 알고리즘
  • 자바스크립트 자료구조
  • 코드잇스프린트
  • 우아한테크코스
  • 코드잇 스프린트 4기
  • 취업까지달린다
  • 코드잇
  • SSR
  • 금융프로젝트
  • 우아한테크코스 6기
  • SSG
  • 프로그래머스
  • 이미지 컴포넌트
  • 웹 어셈블리
  • javascript
  • keyprop
  • 스프린트프론트엔드4기
  • 우테코 6기
  • GIT
  • React

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
trophy98
React의 생명주기(Life Cycle)의 중요성
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.