한입 크기로 잘라먹는

7-1 부업

이 시간 다수 도서 페이지 가지다 회로망 서비스 만들다 예상된다

회로망 섬기는 사람 여러 개의 도서 페이지 어떻게 관리하다 도서 페이지 문의 어떻게 처리 여부 기초적인 알기 위해 필요

관리

어느 회로망 이내에 의사소통 데이터 보내다 노선 선택하다 한 줄의 소송 절차

라우터

파일의 노선 실시간 이름을 짓다 역할 하다 무엇

루트 + ING

노선 단단히 자신과 그만큼 소송 절차 모두 포함 ~와 연관되다 단어

부업

회로망 섬기는 사람 길에서 문의 나는 회로망 문서 주제 물건

요청에 따라 따라서 어느 도서 페이지 내가 돌아오면 결정하는 소송 절차

예) /home -> Home.html 요청 돌려 주다

요청에 따라 표현 되었습니다 길에서 따라서 적합한 도서 페이지 선택하다 그만큼 도서 페이지 손을 돌려 사용자 웹 사이트상에서 연결하다 소송 절차

MPA(다중 페이지 애플리케이션)


웹 서버 여러 개의 도서 페이지 가지다 나중에 길에서 따라서 적합한 도서 페이지 보내다 방법

브라우저 회로망 웹 사이트상에서 데이터 당신이 받을 때 새로운 고치다 어떻게 될 것인가 도서 페이지 이동 방법

SPA(단일 페이지 애플리케이션)


반응하다~에 사용 방법, 싱글 페이지로 구성된 회로망 애플리케이션

회로망 신청을 위해 필요한 모든 조용히 자원 처음에는 한 번 다운로드 하다 ~ 후에 새로운 도서 페이지 문의 도시 도서 페이지 업데이트하려면 필요한 데이터만 받았습니다 도서 페이지 고쳐 쓰다 방법

전체적으로 교통 감소하고 렌더링하다 좋은 능률 가지다.

CSR(클라이언트 측 렌더링)

고객 페이지의 저절로 도서 페이지 생식 방법

일찍 화면 부담은 천천히 그러나 부담은 ~이 되다 ~ 후에 재산 이내에 주위를 걷다 그때에 로드 중 과정 에서 사용자 친근성 나아지고 있다

7-2 도서 페이지 라우팅하나

CSR, 반응 라우터 기초적인

ReactRouter~에서 공무상 문서

Reactrouter.com

설치 명령

npm react-router-dom

설치 ~ 후에 패키지.json에게 종속성붓다 확인하면 하다

원천접합재 아래에 접합재 페이지 생산하는 ~ 후에 여러 개의 도서 페이지 책임을 지다 요소 생산하는


Home.js

const Home = () => {
  return (
    <div>
      <h1>Home</h1>
      <p>이곳은 홈 입니다</p>
    </div>
  );
};
export default Home;

전체 이것으로 비슷한 모양으로 만들다 주다

이와 같이 만약에 기초적인 준비는 완전한 될거야

지금 도서 페이지 라우팅 시도 해봐 될거야

app.js

import { BrowserRouter } from "react-router-dom";
 
function App() {
  return (
    <BrowserRouter>
      <div className="App">
        <h2>App.js</h2>
      </div>
    </BrowserRouter>
  );
}

라우터 사용 차이점 요소 브라우저라우터~처럼 덮어야 한다

그만큼 뒤에 도서 페이지구성 요소 수입 할 것이다

import Home from "./pages/Home";
import New from "./pages/New";
import Diary from "./pages/Diary";
import Edit from "./pages/Edit";

app.js

function App() {
  return (
    <BrowserRouter>
      <div className="App">
        <h2>App.js</h2>
        <Routes>
          <Route path="/" element={<Home />} />
          <Route path="/new" element={<New />} />
          <Route path="/edit" element={<Edit />} />
          <Route path="/diary" element={<Diary />} />
        </Routes>
      </div>
    </BrowserRouter>
  );
}

노선그리고 노선붓다 사용법을 통해 라우팅

떨어져 있는~ 안에 노선 요소~ 안에 관련된 길에서 어느 요소 인쇄 여부 지정된 경우 라우팅 하다

관련된 경로로 문의 보내다 보다 변경 부분은 노선~ 안에 있다 일부만 변경 물건 식별하다 숫자 있다

지금 페이지 이동 강요 만들다 보다

HTML~ 안에 징후 내가 전에 여기 사용하지 않음 그거 하지마 페이지는 이동하다 그때에 새로운 고치다 기쁘게 MPA 떨어져 있는.

하지만 React는 SPA 방식을 사용하기 때문에 LIink를 사용합니다.

라벨은 헥사~처럼 노선 하지만 보여 지름길~이다 에게~처럼 노선 표시하다 당신이 주면 하다

노선붓다 시험 하다 ~을 위한 요소 하나 만들다 주다

RouteTest.js

import { Link } from "react-router-dom";
 
const RouteTest = () => {
  return (
    <>
      <Link to={"/"}>Home</Link>
      <br />
      <Link to={"/diary"}>Diary</Link>
      <br />
      <Link to={"/new"}>New</Link>
      <br />
      <Link to={"/edit"}>Edit</Link>
    </>
  );
};
export default RouteTest;

app.js에게 추가하면


이와 같이 바로 가기는 올라와 관련된 지름길 누르면 ~라고 불리는 부분 관련된 링크로 오른쪽으로 구성 요소로 변화 물건 숫자 있다

SSR어떤 식으로 도서 페이지 이동하다 만약에 엄밀히 말하자면 도서 페이지 이동하다 ~처럼

도서 페이지 역할 하다 요소 변화 샌드위치 URL하다 변화 페이지는 감동 마치 보이다 만드는 떨어져 있는.

반응하다~ 안에 도서 페이지 변환 도시 플래시 아니요 이동 속도 빠른 편안한 도서 페이지 재배치 할 것이다 숫자 ~하도록 하다 부분 CSR방법 사용.

7-3. 도서 페이지 라우팅 2

CSR

라우터 응답

반응하다~에 CSR기반을 둔 도서 페이지 라우팅 할 것이다 숫자 아마도 도서관

라우터 DOM 응답~에서 유용한 기능

경로 변수

전) 다이어리도서 페이지

노선: /다이어리

특성: 어느 다이어리 보여줘야 한다 할 것이다 계전기 반드시 나무 상자

: /일기/1 -> 1 다이어리

useParams

<Route path="/diary/:id" element={<Diary />} />

콜론 ~을 통해 다이어리/뒤에 오다 것들 ID값으로 내가 가져 하나 될거야

그만큼 ID 가치가있다 어떻게 사용 숫자 있다면

Diary.js

import { useParams } from "react-router-dom";
 
const Diary = () => {
  const { id } = useParams();
  return (
    <div>
      <h1>Diary</h1>
      <p>이곳은 일기 상세 페이지 입니다</p>
    </div>
  );
};
export default Diary;

커스텀 훅으로 useParam 도서관 소유하다 도서관 편안한 사용 숫자 ~하도록 하다 만들다 지루한 .

useParam붓다 당신이 사용하는 경우 경로 변수두번째 모으다 객체로 배달 내가 하게 해줘 저 할 수 있어요 경로 변수두번째 ID~처럼 했다 왜냐하면 다이어리구성 요소에서 그것을 꺼내 주다.

쿼리 문자열

문의

회로망 웹 사이트상에서 데이터 전달하다 최대 간단히 방법

예) /edit?id=10&mode=dark => 쿼리 문자열

useSearchParams

반응하다~에 문의문을 열어 읽다 ~을 위한 방법

주소 표시줄에서 http://localhost:3000/edit?id=10 ~라고 불리는 문의 보내다

Edit.js 보정

import { useSearchParams } from "react-router-dom";
 
const Edit = () => {
  const (searchParams, setSearchParams) = useSearchParams();
  const id = searchParams.get("id");
  console.log(id);
  const mode = searchParams.get("mode");
  console.log(mode);
 
  return (
    <div>
      <h1>Edit</h1>
      <p>이곳은 일기 수정 페이지 입니다</p>
    </div>
  );
};
export default Edit;

const (searchParams, setSearchParams) = useSearchParams();

첫 번째 돌려받다 인덱스 1 검색 매개변수~이다 받다두번째 ~을 통해 배달 쿼리 문자열두번째 가져가다 숫자 있다 사용하는 것입니다

가져가다 방법

const id = searchParams.get("id");

두번째 setSearchParams~이다 검색 매개변수붓다 바꿀 수있다 있다 기능 있다.

<button onClick={() => setSearchParams({ who: "juseong" })}>
	QS 바꾸기
</button>

단추 누를 때

http://localhost:3000/edit?who=주성

그만큼 이 주소로 바뀌었다고 숫자 있다.

페이지 이동

탐색 사용

의도적으로 도서 페이지 이동하다 숫자 아마도 부분 물건

도서 페이지 이동하다 숫자 있다 기능 하나 돌려 주다

Edit.js useNavigate붓다 사용 손을 돌려 기능 탐색하다~처럼 허용 반품

탐색(“노선“);~처럼 관련된 경로로 이동하다 숫자 있다 기능

탐색(-1); 돌아가다 단추 만들다 숫자 있다.

const navigate = useNavigate();
return(
	<button onClick={() => {
          navigate("/home");
        }}>home으로 가기</button>
     )