1.Errorboundary
발생하는 예외를 관리하고, 앱이 충돌하지 않도록 도와주는 컴포넌트
Error Boundary 컴포넌트는 앱의 트리 하위에서 에러가 발생했을 때 사용자에게 대체 UI를 제공한다.
<ErrorBoundary>
<MyComponent />
</ErrorBoundary>
import React, { Component, ErrorInfo } from 'react';
// 상태 타입 정의
interface ErrorBoundaryState {
hasError: boolean;
}
// 속성 타입 정의
interface ErrorBoundaryProps {
children: React.ReactNode; // ErrorBoundary 안에 들어갈 컴포넌트 자식 요소
}
class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
constructor(props: ErrorBoundaryProps) {
super(props);
this.state = { hasError: false }; // 초기 상태 설정
}
// 오류가 발생했을 때 상태 업데이트
static getDerivedStateFromError(error: Error): ErrorBoundaryState {
return { hasError: true };
}
// 에러 캐치 및 로깅
componentDidCatch(error: Error, errorInfo: ErrorInfo) {
console.error("ErrorBoundary caught an error:", error, errorInfo);
}
render() {
// 오류 발생 시 사용자에게 대체 UI 제공
if (this.state.hasError) {
return <h1>Something went wrong.</h1>;
}
// 오류가 없을 때, 자식 컴포넌트를 렌더링
return this.props.children;
}
}
'FrontEnd > React' 카테고리의 다른 글
[React] Tanstack Query (0) | 2025.01.20 |
---|---|
[React] Suspense,lazy (0) | 2025.01.18 |
[React] Zustand (0) | 2025.01.07 |