250x250
반응형
- Today
- Total
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 리액트 라이프사이클
- server action
- 훈련소
- 오블완
- query param
- 사회복무요원 훈련소
- 리액트 알림
- useRouter
- 자바스크립트
- sessionStorage
- useformstatus
- resolved to branch.
- 산업기능요원 훈련소
- no-use-before-define
- localStorage
- styled-component
- 공익 훈련소
- react life sycle
- 자바스크립트 순수함수
- angular
- 비동기 병렬처리
- react toast
- 오라클클라우드
- next.js toast
- svgr
- NextJS
- 훈련소 후기
- react
- 리액트
- The above error occurred in the
Archives
아 그거 뭐였지
[React] 리액트 중첩 라우팅 하기 (BrowserRouter) 본문
728x90
반응형
Q. localhost:3000/auth/login 해당 url처럼 auth뒤에 login으로 가게 해주세요.
Angular에서는 중첩라우팅을하고싶으면 RouterModule.forRoot에 걸린 컴포넌트에서 RouterModule.forChild를 하면
중첩 라우팅이 가능한데 리액트에서는 어떻게 하는지 궁금해서 찾아보았다.
리액트는 최상단 파일에서 BrowserRouter로 컴포넌트들을 감싸고 중첩라우팅을 할 주소 뒤에 *를 붙여서
해당 주소로 시작하면 무조건적으로 원하는 컴포넌트로 접속이 될수있도록 라우팅을 시켜버리는것같다.
여기서 주의할점은 BrowserRouter는 최상단 파일에서 한번만 사용하고 자식 파일들은 Routes만 사용해야한다는점이다.
바로 코드로 확인해보자.
먼저 최상단 파일에서 라우팅을 하고싶은 url을 지정해준다.
// App.js
import { BrowserRouter, Route, Routes } from "react-router-dom";
import "./App.css";
import React from "react";
import Main from "./components/main/Main";
import Auth from "./pages/auth/Auth";
function App() {
return (
<div className="App">
// 최상단 폴더에서 BrowserRouter로 묶어줌
<BrowserRouter>
<Routes>
//auth로 시작하는 주소는 무조건 Auth 컴포넌트로 이동
<Route path="/auth/*" element={<Auth />}></Route>
<Route path="/" element={<Main />}></Route>
</Routes>
</BrowserRouter>
</div>
);
}
그다음 자식 컴포넌트에서 원하는 url을 지정해준다.
//Auth.js
import React, { Component } from "react";
import { Route, Routes } from "react-router-dom";
import Login from "../../components/auth/Login";
import Regist from "../../components/auth/Regist";
export default class Auth extends Component {
render() {
return (
//BrowserRouter는 사용하지않는다.
<Routes>
<Route path="login" element={<Login />}></Route>
<Route path="regist" element={<Regist />}></Route>
</Routes>
);
}
}
이렇게 하면 중첩라우팅을 할수있다.
728x90
반응형
'Front-End' 카테고리의 다른 글
[React] Styled-Component onChange TypeScript , useState (0) | 2022.07.16 |
---|---|
[React] Styled-Component 사용해보기 (Props로 재사용 컴포넌트 만들기) (0) | 2022.06.27 |
[React] Module not found: Error: Can't resolve .. In .. 오류 (TypeScript React,Next) (0) | 2022.06.25 |
[Angular] Angular에서 soket.io 사용하기 (0) | 2022.05.18 |
[Angular] ngFor, 반복적인 HTML (feat. 배열 데이터 출력) (0) | 2022.04.13 |
Comments