리액트에서의 라이프 사이클은 컴포넌트의 생성, 업데이트, 소멸 과정을 의미한다. 주로 클래스형 컴포넌트에서 특정한 라이프 사이클 메서드를 사용하여 각 단계에서 원하는 작업을 수행하며, 함수형 컴포넌트에서는 리액트 훅(Hook)을 통해 비슷한 작업을 수행할 수 있다.
라이프 사이클을 이해하면, 컴포넌트가 언제 어떤 작업을 수행하는지 파악할 수 있다. 예를 들어, 컴포넌트가 화면에 나타나기 전에 초기화 작업을 수행하거나, 화면이 업데이트되기 전에 상태를 확인하고 업데이트 여부를 결정할 수 있다.
라이프 사이클을 이해하고 활용하여 성능을 향상시키고 애플리케이션의 동작을 예측 가능하게 만들 수 있다.
컴포넌트 인스턴스가 생성되어 DOM 상에 삽입될 때 순서대로 호출되는 메서드
constructor() 클래스 생성자render()componentDidMount()props 또는 state가 변경되면 갱신이 발생되며 순서대로 호출되는 메서드
render()componentDidUpdate()컴포넌트가 DOM 상에서 제거될 때에 호출되는 메서드
componentWillUnmound()클래스형 컴포넌트의 주요 단점은 복잡성, 번거로움, 성능 저하이다. 클래스형 컴포넌트는 상태 관리와 라이프 사이클 메서드를 위해 추가적인 코드를 작성해야 하며, 이로 인해 코드가 더 복잡해지고 이해하기 어려워진다.
또한, 라이프 사이클 메서드를 제대로 이해하고 사용하기 위해서는 학습 곡선이 높고 실수를 유발할 가능성이 있다. 성능 면에서도 함수형 컴포넌트에 비해 덜 효율적일 수 있다.
함수형 컴포넌트에서 라이프 사이클은 주로 useEffect() 훅을 사용하여 다룹니다. 리액트 16.8 버전부터 도입된 Hooks는 함수형 컴포넌트에서 상태와 생명주기 기능을 사용할 수 있도록 해주는 강력한 기능이다. Hooks를 사용하면 클래스형 컴포넌트의 불필요한 복잡성을 줄이고 함수형 컴포넌트에서도 동일한 기능을 구현할 수 있다.
useEffect()를 사용해 클래스 컴포넌트 라이프 사이클 처럼 구현 가능 componentDidMount와 componentDidUpdate, componentWillUnmount 처럼 사용이 가능하다[])을 전달하면 컴포넌트가 마운트될 때 한 번만 실행되는 효과를 낼 수 있다참고: 클래스 컴포넌트 생명주기
참고: 링크텍스트
참고: 리액트 Hook
React 공식문서: 컴포넌트 생명주기
React 공식문서: 리액트 Hook