[javascript] 리액트 라우터의 예외 처리와 에러 핸들링 방법
React Router는 React 애플리케이션 내에서 라우팅을 담당하는 라이브러리입니다. 이 라이브러리를 사용하면 URL을 기반으로 다른 페이지 또는 컴포넌트로 전환할 수 있습니다.
하지만 때로는 라우팅 중에 예외가 발생하거나 오류가 발생할 수 있습니다. 이럴 때는 적절한 예외 처리와 에러 핸들링 방법을 알고 있어야 합니다.
예외 처리
React Router에서 예외를 처리하기 위해 다양한 방법을 사용할 수 있습니다. 예를 들어, Switch
컴포넌트를 사용하여 정의되지 않은 경로에 대한 예외 처리를 할 수 있습니다.
import { Switch, Route } from 'react-router-dom';
const App = () => {
return (
<Switch>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route component={NotFound} />
</Switch>
);
};
위의 코드에서 /about
경로에 대한 라우터가 정의되어 있지 않을 경우 NotFound
컴포넌트가 렌더링됩니다.
에러 핸들링
React Router는 에러 핸들링을 위한 ErrorBoundary
컴포넌트를 제공합니다. 이 컴포넌트는 자식 컴포넌트에서 발생하는 에러를 감지하고 대체 컨텐츠를 렌더링할 수 있도록 도와줍니다.
import { ErrorBoundary } from 'react-error-boundary';
const App = () => {
return (
<ErrorBoundary fallbackRender={({ error }) => <ErrorPage error={error} />}>
<Router>
<Switch>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route component={NotFound} />
</Switch>
</Router>
</ErrorBoundary>
);
};
ErrorBoundary
컴포넌트는 fallbackRender
함수를 prop으로 받아 에러가 발생하면 이 함수를 호출하여 에러 페이지 컴포넌트를 렌더링합니다.
정리
React Router를 사용할 때 예외 처리와 에러 핸들링을 제대로 구현하는 것은 중요합니다. Switch
컴포넌트로 정의되지 않은 경로에 대한 예외 처리를 할 수 있으며, ErrorBoundary
컴포넌트로 에러 핸들링을 할 수 있습니다.
이러한 예외 처리와 에러 핸들링은 사용자 경험을 향상시키고 애플리케이션의 안정성을 높여줍니다.