반응형
💎 NavLink와 Link의 차이는?
- NavLink는 특정 링크에 스타일을 넣어줄 수 있다.
💎 React-Router-Dom createBrowserRouter
💎 React-Router-Dom Outlet 이란?
- 중첩 라우팅: 컴포넌트 children과 같은 느낌으로 라우터를 중첩해서 사용
- Outlet을 이용하면 상위 컴포넌트를 레이아웃화 할 수 있다.
App.js
//import 삭제
const router = createBrowserRouter([
{
path: "/",
element: <RootLayout />,
children: [
{ path: "", element: <HomePage /> },
{ path: "events", element: <EventsPage /> },
{ path: "events/:id", element: <EventDetailPage /> },
],
},
]);
function App() {
return <RouterProvider router={router} />;
}
export default App;
Root.js
import { Outlet } from "react-router-dom";
import MainNavigation from "../components/MainNavigation";
function RootLayout() {
return (
<>
<MainNavigation />
<main>
<Outlet /> {/* 자녀 라우트 콘텐츠를 렌더링할 곳을 정의 */}
</main>
</>
);
}
export default RootLayout;
💎 Fetch vs Axios
Axios |
Fetch |
요청 객체에 url에 있다. | 요청 객체에 url에 없다. |
*써드파티 패키지로 설치가 쉽다. ( npm install axios ) |
Built-in APIs 로 별도의 설치 필요 없이, 모던 브라우저에서 사용 가합니다. |
*XSRF를 보호 해준다. | 별도 보호 없음. |
data 속성을 사용한다. | body 속성을 사용한다. |
data는 object를 포함한다. | body는 문자열화 되어있다. |
status가 200, statusText가 'OK'이면 성공이다. | reponse 객체가 OK 속성을 포함하면 성공이다. |
자동으로 JSON 데이터 형식으로 변환된다. | .json() 메소드를 사용하여 변환 해야한다. |
Request 취소 와 Request Timeout 설정이 가능하다. | 해당 기능 없음. |
HTTP 요청을 가로챌 수 있다. | default로 제공하지 않음 |
폭 넓은 브라우저 지원 | 크롬 42+, firefox 39+, edge 14+, safari 10.1+ 에서만 지원 |
💎 React-Router-Dom Loader
loader: 컴포넌트가 생성되기 전에 컴포넌트에 데이터를 전달하는 역할을 수행
💎 리액트 API KEY 숨기기
💎 useEffect - clean up 함수?
useEffect(() => {
return () => { }; //클린업
}, []);
- 클린업 함수는 이펙트가 호출되기 전과 컴포넌트가 언마운트될 때 호출되면서 이전 이펙트로 인한 결과를 정리하는 역할을 한다.
(* 단 컴포넌트가 마운트되면서 호출되는 이펙트는 이전 이펙트가 없으므로 이 때는 호출되지 않는다.) - 확실한 마무리가 필요한 작업을 수행할 때 클린업을 활용한다.(ex. 소켓에서 연결 끊기 등)
반응형
'웹 프로그래밍 > React' 카테고리의 다른 글
리액트 공식문서 읽기 - 주요개념(Components와 Props) (0) | 2024.03.18 |
---|---|
리액트 공식문서 읽기 - 주요개념(엘리먼트 렌더링) (0) | 2024.03.18 |
리액트 공식문서 읽기 - 주요개념(Hello World, JSX 소개) (0) | 2024.03.18 |
[React] 상위 컴포넌트에서 하위 컴포넌트로 데이터 전달하기(props) (0) | 2023.09.05 |
[React] Link to 밑줄 없애기 (0) | 2022.04.10 |
[React]material ui 로그인 페이지 템플릿 코드 분석 (0) | 2022.03.31 |