1. 다운로드
react-router-dom
- 터미널에 명령어를 입력해서 다운로드 해 준다.
2. index.js
import React from 'react';
import ReactDOM from 'react-dom/client';
import { BrowserRouter } from 'react-router-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<BrowserRouter/>
<App />
</React.StrictMode>
);
reportWebVitals();
- BrowserRouter import 후 태그 추가
☠️Error
(error) Cannot destructure property 'basename' of 'react~~.useContext(...)' as it is null
import React from 'react';
import ReactDOM from 'react-dom/client';
import { BrowserRouter } from 'react-router-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>
);
reportWebVitals();
<React.StrictMode>
<BrowserRouter/>
<App />
</React.StrictMode>
- App 태그를 BrowserRouter 코드로 감싸주니 해결
import React from "react";
import { Routes, Route, Link} from "react-router-dom";
import Home from "./pages/Home";
import About from "./pages/About";
function App() {
return (
<div className="App">
<nav>
<Link to={"/"}>Home</Link> |
<Link to={"/about"}>About</Link>
</nav>
<Routes>
<Route path="/" element={<Home />}></Route>
<Route path="/about" element={<About />}></Route>
</Routes>
</div>
);
}
export default App;
- Link와 상응하는 Route 코드를 작성해주면 라우터가 생성된다.
- 어떤 컴포넌트를 매핑해서 보여주게 될지 라우터에서 처리 함