[react] componentDidCatch 메서드의 역할은 무엇인가요?

이 메서드는 컴포넌트 생명 주기 메서드 중 하나로, 컴포넌트 내부에서 오류가 발생했을 때 호출됩니다. 이를 통해 애플리케이션이 예상치 못한 오류로부터 복구하거나 오류 상태를 처리할 수 있습니다.

componentDidCatch 메서드는 다음과 같은 방식으로 적용될 수 있습니다:

  1. 에러 경계 설정: componentDidCatch 메서드를 사용하여 특정 컴포넌트 내에서 발생한 오류를 처리하고 사용자 경험을 보호할 수 있습니다.

  2. 오류 처리: componentDidCatch를 사용하여 예외를 처리하고 사용자에게 오류 페이지를 보여줌으로써 애플리케이션의 안정성을 높일 수 있습니다.

예시 코드:

class ErrorBoundary extends React.Component {
  constructor(props) {
    super(props);
    this.state = { hasError: false };
  }

  componentDidCatch(error, info) {
    this.setState({ hasError: true });
    // 에러 로깅 또는 기타 작업 수행
  }

  render() {
    if (this.state.hasError) {
      return <h1>앱에서 오류가 발생했습니다.</h1>;
    }
    return this.props.children;
  }
}

<ErrorBoundary>
  <MyComponent />
</ErrorBoundary>

위의 예시 코드에서 ErrorBoundary 클래스는 componentDidCatch를 사용하여 자식 컴포넌트에서 발생한 오류를 처리하고 적절한 대체 컨텐츠를 표시합니다. 그러면 애플리케이션은 사용자에게 안정적인 환경을 제공할 수 있습니다.

참고 자료