728x90
728x90
json() 유틸리티 함수 (React Router)
들어가며
- 리액트 라우터(React Router)에서 제공하는 @json()@ 유틸리티 함수에 대해 정리해본다.
json()
개념
- 리액트 라우터(React Router)에서 제공하는 함수
- React Router v6.4에서 추가된 유틸리티 함수
- 주로 라우터 핸들러에서 사용되며, JSON 형식의 데이터를 응답(Response)으로 반환한다.
특징
- 자동 설정된 Content-Type
- @json()@ 함수는 반환된 응답의 @Content-Type@ 헤더를 @application/json@으로 자동으로 설정한다.
- 간편한 사용
- JSON 형식의 데이터를 반환하는데 필요한 코드를 간소화하여, 개발자가 보다 직관적이고 간편하게 사용할 수 있게 한다.
- 상태(Status) 코드 설정 가능
- @json()@ 함수는 선택적으로 상태 코드를 설정할 수 있다.
- 예) @return json(data, { status: 200 });@ (@json()@ 함수의 두 번째 인자에 상태코드를 객체 형식으로 넣어준다.)
사용 예제
예제 1
import { json } from "react-router-dom";
function loader() {
const data = {
message: "Hello, World!",
timestamp: Date.now()
};
return json(data);
}
예제 2
import { createBrowserRouter, RouterProvider, Route } from "react-router-dom";
import { json } from "react-router-dom";
const router = createBrowserRouter([
{
path: "/",
element: <HomePage />,
loader: async () => {
const data = { message: "Hello, World!" };
return json(data); // JSON 형태로 응답
},
},
]);
function HomePage() {
const data = useLoaderData();
return (
<div>
<h1>{data.message}</h1>
</div>
);
}
function App() {
return <RouterProvider router={router} />;
}
export default App;
참고 사이트
728x90
728x90
'Programming > React' 카테고리의 다른 글
[React.js] 지연 로딩(Lazy Loading) (0) | 2024.07.08 |
---|---|
[React.js] useSearchParams 훅 (React Router) (0) | 2024.07.08 |
[React.js] defer() (React Router) (0) | 2024.07.07 |
[React.js] useFetcher 훅 (React Router) (0) | 2024.07.07 |
[React.js] useRouterError 훅 (React Router) (0) | 2024.07.05 |
[React.js] React Router의 loader 속성 (0) | 2024.07.03 |
[React.js] 라우터 설정 방법 (React Router) (0) | 2024.07.02 |
[React.js] 리액트에서의 상태 관리 방법 (0) | 2024.06.30 |