npx create-react-app react-router-dom ์ ํตํด react ์ค์ตํ๊ฒฝ ๋ง๋ค๊ธฐ
[๊ฒฐ๊ณผ]

npm install react-router-dom ์ ํตํด react-router ์ค์นํ๊ธฐ

import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter , Route, Routes } from 'react-router-dom';
import './index.css';
import reportWebVitals from './reportWebVitals';
import * as serviceWorker from './serviceWorker';
function Home() {
return(
<div>
<h2>Home</h2>
Home...
</div>
)
}
function Topics() {
return(
<div>
<h2>Topics</h2>
Topics...
</div>
)
}
function Contact(){
return(
<div>
<h2>Contact</h2>
Contact...
</div>
)
}
function App() {
return(
<div>
<h1>React Router DOM example</h1>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/topics">Topics</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
<Route exact path="/"><Home></Home></Route>
<Route path="/topics"><Topics></Topics></Route>
<Route path="/contact"><Contact></Contact></Route>
<Route path="/">Not found</Route>
</div>
)
}
ReactDOM.render(
// BrowserRouter๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ํ๊ฐ ๋์๋ค.
<BrowserRouter>
<App />
</BrowserRouter>,
document.getElementById('root')
);
reportWebVitals();
serviceWorker.unregister();
[๊ฒฐ๊ณผ]
ํฐ๋ฏธ๋์ npm start ์
๋ ฅ

Route ํ๊ทธ๋ Routes์ element๋ก ์ฌ์ฉ๋์ด์ผํ๋ค.
<Routes>
<Route exact path="/"><Home></Home></Route>
<Route path="/topics"><Topics></Topics></Route>
<Route path="/contact"><Contact></Contact></Route>
<Route path="/">Not found</Route>
</Routes>
Route ์ปดํฌ๋ํธ๋ฅผ Routes๋ก ๊ฐ์ธ์ค๋ค.
[๋ฌธ์ ํด๊ฒฐ ๊ฒฐ๊ณผ]

Home ์ปดํฌ๋ํธ๊ฐ Route ์ปดํฌ๋ํธ๊ฐ ์๋๋ผ๊ณ ํ๋ค!!
๋ฌธ์ ํด๊ฒฐ์ ์ํด ์ฐธ๊ณ ํ ์๋ฃ
https://velog.io/@developerjhp/Error-App-is-not-a-Route-component.-All-component-children-of-Routes-must-be-a-Route-or-React.Fragment

์ฌ๊ธฐ๋ฅผ ๋ณด๊ณ Route์ element๋ก ์ํ๋ ์ปดํฌ๋ํธ๋ฅผ ์ง์ด๋ฃ์ด์ผํ๋๊ตฌ๋ ์ถ์๋ค!
<Routes>
<Route exact path="/" element={<Home/>}/>
<Route path="/topics" element={<Topics/>}/>
<Route path="/contact" element={<Contact/>}/>
</Routes>

Topics ํด๋ฆญ์

๐ ์์ ์ ์ฝ๋

๐โ ์์ ํ ์ฝ๋
import { BrowserRouter , Route, Routes , Link } from 'react-router-dom';
<li><Link to="/">Home</Link></li>
<li><Link to="/topics">Topics</Link></li>
<li><Link to="/contact">Contact</Link></li>

๊ฒฐ๊ณผ๋ ๋์ผํ์ง๋ง, console์ฐฝ์ ํ์ธํด๋ณด๋ฉด

Home์ class="active" ๊ฐ ์์ฑ๋๋ค!!
์ดํ, Topics๋ฅผ ํด๋ฆญํ๋ฉด ?

Topics๋ก class="active" ๊ฐ ์ฎ๊ฒจ ๊ฐ ๊ฒ์ ํ์ธํ ์ ์๋ค
์ฆ, ์ฌ์ฉ์๊ฐ ์์ ์ด ์ด๋ค ํ์ด์ง์ ์์นํด ์๋์ง ์ง๊ด์ ์ผ๋ก ์ ์ ์๋ค