250x250
Rainbow🌈Coder
My dev Note📒
Rainbow🌈Coder
전체 방문자
오늘
어제
  • 분류 전체보기 (411)
    • 공지사항 (0)
    • Debugger (10)
      • Visual Studio Debugger (1)
      • Chrome DevTools (3)
      • Visual Studio Code Debugger (4)
      • eclipse (1)
      • intelliJ (1)
    • OOP (2)
      • OOP (2)
    • TypeScript (54)
      • 타입스크립트 TypeScript (54)
    • Javascript (87)
      • Javascript (45)
      • Node.js (19)
      • React (5)
      • FE 개발환경설정 (3)
      • React와 Node 같이 때려잡기 (6)
      • next.js (2)
      • pixi.js (7)
    • 마크업 (23)
      • Html & Css (23)
    • C# (80)
      • C# (12)
      • 이것이 C#이다 (68)
    • C++ (30)
      • c++ (27)
      • win api (3)
    • Unity (18)
      • Unity(기초) (8)
      • Unity(C#중급) (5)
      • 유니티 포톤(네트워크) (4)
      • unity c# MyCode (1)
    • Java & Spring (29)
      • Java (11)
      • 스프링 (8)
      • Java Algorithm (9)
      • Javs Data Structures (1)
    • 자료구조와 알고리즘 (15)
      • 자료구조 (5)
      • 알고리즘 (10)
    • 형상관리 (15)
      • Git (11)
      • 소스트리 (3)
    • 그래픽스 (7)
      • WebGl (7)
    • AWS (3)
      • aws (3)
    • 리눅스 (5)
      • 리눅스 (5)
    • 책 리뷰 (13)
      • 클린코드(책리뷰) (3)
      • 유지보수가능한코딩의기술C#편(책리뷰) (1)
      • 리팩토링(자바스크립트판) (9)
    • Server (2)
      • 게임 서버(네트워크, 멀티쓰레드,OS) (2)
    • 설계, 아키텍쳐 (4)
    • 파이썬 (5)
    • 디자인패턴 (2)
    • mocha (2)
    • Jest (1)
    • Spine (1)
    • 인공지능 (1)
      • 혼자공부하는머신러닝+딥러닝 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 컴포지션
  • 위임
  • MySQL
  • ㅣㄷ

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Rainbow🌈Coder

My dev Note📒

[React] 리액트 라우터와 관련 Hooks 정리
Javascript/React

[React] 리액트 라우터와 관련 Hooks 정리

2022. 12. 14. 12:37
728x90

 

- 라우터 개념이해 + Link 개념

- restful route 개념 이해

- react hook 중에서 useNavigate, useParams, useSearchParams이해

 

 

Route는 경로란 뜻이다. 웹페이지를 여러개 만들고, 이 각각의 웹페이지를 가기 위한 경로가 필요하다.

 

 

설치 명령어

npm install react-router-dom
 

 

BrowserRouter

다른 창의 URL에 대한 변경 사항을 추적하는 데 사용할 수도 있다

import * as React from "react";
import * as ReactDOM from "react-dom";
import { BrowserRouter } from "react-router-dom";

ReactDOM.render(
  <BrowserRouter>
    <App />
  </BrowserRouter>,
  root
);
 

 

Route

각각의 페이지를 라우터로 감싼다.

path에는 주소창에 쓸 경로, element에는 페이지 컴포넌트 입력

import { Route } from "react-router-dom";

<Route path="/teams" element={<Teams />}>
  <Route path=":teamId" element={<Team />} />
</Route>
 

Link

앵커처럼 작동한다. 라우터 간 이동을 도와주는 링크라고 해석하면 된다.

 

function goAbout() {
  return (
    <Link to="/about">
      Go to about page
    </Link>
  );
}
 

useNavigate

() 안에 내가 가고 싶은 경로를 작성해준다.

import { useNavigate } from "react-router-dom";

function useLogoutTimer() {
  const userIsInactive = useFakeInactiveUser();
  const navigate = useNavigate();

  useEffect(() => {
    if (userIsInactive) {
      fake.logout();
      navigate("/session-timed-out");
    }
  }, [userIsInactive]);
}
 

 

Restful Routes

대표사진 삭제

사진 설명을 입력하세요.

 

useParams

'/' 로 이어진 모든 매개변수를 받아올 수 있는 성질을 이용하여 URL의 파라미터 값을 읽어올 수 있다.

import * as React from 'react';
import { Routes, Route, useParams } from 'react-router-dom';

function ProfilePage() {
  // Get the userId param from the URL.
  let { userId } = useParams();
  // ...
}

function App() {
  return (
    <Routes>
      <Route path="users">
        <Route path=":userId" element={<ProfilePage />} />
        <Route path="me" element={...} />
      </Route>
    </Routes>
  );
}
 

useSearchParams

쿼리값을 읽어올 수 있다.

import * as React from "react";
import { useSearchParams } from "react-router-dom";

function App() {
  let [searchParams, setSearchParams] = useSearchParams();

  function handleSubmit(event) {
    event.preventDefault();
    // The serialize function here would be responsible for
    // creating an object of { key: value } pairs from the
    // fields in the form that make up the query.
    let params = serializeFormQuery(event.target);
    setSearchParams(params);
  }

  return (
    <div>
      <form onSubmit={handleSubmit}>{/* ... */}</form>
    </div>
  );
}
 

 

 

 

기타 hooks들은 도큐먼트를 하나씩 읽으면서 적용해볼 수 있다 :)

 

 

 

설명

 

라우터는 '어떤 화면을 보여 줄지 관리해주는 친구'이다.

조금 더 정확하게 말하자면 '어떤 컴포넌트'를 '렌더링'할지 결정하는 역할을 한다.

(컴포넌트는 화면을 표현하기 위한 조각이다.)

 

 

 

 

 
Home v6.4.5

What's New in 6.4? v6.4 is our most exciting release yet with new data abstractions for reads, writes, and navigation hooks to easily keep your UI in sync with your data. The new feature overview will catch you up. I'm New Start with the tutorial. It will quickly introduce you to the primary feature...

reactrouter.com

 

React Router 도큐먼트

 

Home v6.4.5

I'm on v5 The migration guide will help you migrate incrementally and keep shipping along the way. Or, do it all in one yolo commit! Either way, we've got you covered to start using the new features right away.

reactrouter.com

 

 

 

 

728x90

'Javascript > React' 카테고리의 다른 글

[React] fontawesome 리액트로 가져오기  (0) 2022.12.26
[리액트] 컴포넌트 단축키 깡패 rafce  (0) 2022.05.23
[리액트] 환경설정  (0) 2022.05.07
[React] index.html 에 리액트와 바벨 불러오기  (0) 2022.04.23
    'Javascript/React' 카테고리의 다른 글
    • [React] fontawesome 리액트로 가져오기
    • [리액트] 컴포넌트 단축키 깡패 rafce
    • [리액트] 환경설정
    • [React] index.html 에 리액트와 바벨 불러오기
    Rainbow🌈Coder
    Rainbow🌈Coder
    몰라도 결국은 아는 개발자, 그런 사람이 되기 위한 매일의 한걸음

    티스토리툴바