본문 바로가기
웹 프로그래밍/React

리액트 공부 내용 정리

by 청량리 물냉면 2023. 9. 14.
반응형

💎 NavLink와 Link의 차이는?

- NavLink는 특정 링크에 스타일을 넣어줄 수 있다.

 

[React] Link와 NavLink

리액트는 페이지(URL) 이동할 때마다 서버에서 받는 것이 아니라 자바스크립트가 출력을 해준다. 페이지 경로를 나눠주는 것이 라우터이다.

velog.io

 

💎 React-Router-Dom createBrowserRouter

 

React Router v6.4 이상에서 Router 다루기(RouterProvider, createBrowserRouter, Route)

들어가기 전 21년 말, react-router-dom을 사용할 땐 v6.3이었다. 현재는 메이저 버전은 동일하지만 v6.4를 기점으로 기존에 없던 새로운 기능이 추가되어 이를 소개하고자 한다. 아래의 사진에서 보는

noah-dev.tistory.com

 

💎 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;
 

[React] outlet을 이용한 쉬운 레이아웃 교체

🔰 리액트 라우터 v6 버전에서 중첩 라우팅을 이용하면 부모 레이아웃은 그대로 두고 자식 레이아웃만 쉽게 교체할 수 있다. ✅ 중첩 라우팅 v6에서 중첩 라우팅이 컴포넌트의 children과 같은 개

www.crocus.co.kr

 

💎 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+ 에서만 지원
 

[vanillaJs] Fetch와 Axios를 비교해보자!

자바스크립트에는 HTTP Requests를 위한 방법으로 Fetch와 Axios있다. 두 가지를 모두 사용해보면서 장점과 단점을 느꼈었는데 정확히 어떤 점이 더 낫고 다른지 자세히 알아보자! Fetch ES6부터 들어온 J

mingmeng030.tistory.com

 

💎 React-Router-Dom Loader 

loader: 컴포넌트가 생성되기 전에 컴포넌트에 데이터를 전달하는 역할을 수행

 

[Router] loader와 useLoaderData

오늘은 loader와 useLoaderData에 대해 알아보겠습니다. [ loader ] 서버에 요청하지 않고 데이터를 가능한 한 빨리 가져오기 위해 react router dom 6.4v 부터는 client side browser를 제공하고 있습니다. 즉, 서버

despiteallthat.tistory.com

 

💎 리액트 API KEY 숨기기

 

React | 환경변수 사용하여 API key 숨기기(.env 이용)

리액트 프로젝트를 하면서 API key를 발급받아 사용하는 일이 잦다.카카오 developer 혹은 google developer와 같은 API key들은본인의 고유한 key이므로 그냥 깃헙에 올리면 안된다.React CRA 기반으로 작업을

velog.io

 

 

[React] API키 숨기기(dotenv 활용하기)

[React] API키 숨기기

velog.io

 

💎 useEffect - clean up 함수?

useEffect(() => {
    return () => { }; //클린업
  }, []);
  • 클린업 함수는 이펙트가 호출되기 전과 컴포넌트가 언마운트될 때 호출되면서 이전 이펙트로 인한 결과를 정리하는 역할을 한다.
    (* 단 컴포넌트가 마운트되면서 호출되는 이펙트는 이전 이펙트가 없으므로 이 때는 호출되지 않는다.)
  • 확실한 마무리가 필요한 작업을 수행할 때 클린업을 활용한다.(ex. 소켓에서 연결 끊기 등)
 

찬미니즘

배움과 도전을 즐기는 공대생의 기록입니다.

c17an.netlify.app

 

반응형