κΈ°μ‘΄μ μΉνμ΄μ§λ μΉμ¬μ΄νΈ λ΄μ λ€λ₯Έ νμ΄μ§λ₯Ό λ‘λ©ν λλ§λ€ μλ²μ 미리 μ€λΉλμ΄ μλ νμ΄μ§ μ 체(HTML νμΌ)λ₯Ό μ λ¬ λ°μμμ λ λλ§μ νλ€. νμ§λ§, κ·λͺ¨κ° 컀μ§μλ‘ μ¬μ©μμμ μνΈ μμ©μ΄ λ§μμ§κ³ , μλ μ ν λ±μ λ¬Έμ κ° λ°μνκ² λμλ€..γ γ
β‘οΈ Reactμμλ μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ HTML λ¬Έμ μ μ²΄κ° μλ, μ λ°μ΄νΈμ νμν λ°μ΄ν°λ§ μλ²μμ μ λ¬ λ°μ λμ μΌλ‘ HTML μμλ₯Ό μμ±ν΄μ νλ©΄μ 보μ¬μ£Όλ λ°©μμΈ SPAλ₯Ό μ¬μ©νλ€! (Youtube, facebook, Gmail, airbnb, Netflix λ±)
μ₯μ :
λ¨μ :
μμ΄μ΄νλ μ(wireframe) : λμμΈμ λ€μ΄κ°κΈ° μ λ¨κ³λ‘ μ (wire)μ μ΄μ©ν΄ μ€κ³½μ (frame)μ μ‘λ κ²μ λ§νλ€.
λͺ©μ (mockup) : λ°μ€ν¬ν, μ€λ§νΈν°μ νλ μμ λ§μμ μ§κ΄μ μΌλ‘ μ΄ν΄νκΈ° μ½κ² λμμΈν κ²μ λ§νλ€.
μλ₯Ό λ€μ΄,
<Header />
μ»΄ν¬λνΈλ μ ν리μΌμ΄μ μ μ΄λ νμ΄μ§μ κ°λλΌλ νμ νλ©΄ μλ¨μ μμΉνλ―λ‘ νλ²λ§ λ§λ€μ΄μ λͺ¨λ νμ΄μ§μμ μ¬μ©ν μ μκ² λ‘μ§μ μ§μΌνλ€!
SPAλ νλμ νμ΄μ§λ₯Ό κ°μ§κ³ μμ§λ§, ν μ’ λ₯μ νλ©΄λ§ μ¬μ©νμ§ μλλ€. β‘οΈ νλ©΄μ λ°λΌ μ£Όμκ° λ¬λΌμ§λ€!
νμ§λ§, React μ체μλ λ΄μ₯λ κΈ°λ₯μ΄ μκΈ° λλ¬Έμ React RouterλΌλ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ€.
<BrowserRouter>
: λΌμ°ν° μν μ»΄ν¬λνΈ<Routes>
, <Route>
: κ²½λ‘λ₯Ό λ§€μΉν΄μ£Όλ μ»΄ν¬λνΈ<Link>
: κ²½λ‘λ₯Ό λ³κ²½νλ μ»΄ν¬λνΈimport { BrowserRouter, Routes, Route, Link } from "react-router-dom";
npx create-react-app simpleroute
cd simpleroute
npm start // 리μ‘νΈ μ± μ€ν
npm install react-router-dom@^6.3.0 // React Router μ€μΉ
// μ»΄ν¬λνΈ import
import React from 'react'
import { BrowserRouter, Routes, Route, Link } from "react-router-dom";
// App.js
function App() {
return (
<BrowserRouter>
<div>
<nav>
<ul>
<li>
<Link to="/">Home</Link>{/* Link μ»΄ν¬λνΈλ₯Ό μ΄μ©νμ¬ κ²½λ‘λ₯Ό μ°κ²°ν©λλ€ */}
</li>
<li>
<Link to="/mypage">MyPage</Link>
</li>
<li>
<Link to="/dashboard">Dashboard</Link>
</li>
</ul>
</nav>
<Routes>
<Route path="/" element={<Home />} />
{/* κ²½λ‘λ pathλ‘ μ»΄ν¬λνΈλ elementλ‘ μ°κ²°ν΄ μ€λλ€. */}
<Route path="/mypage" element={<MyPage />} />
<Route path="/dashboard" element={<Dashboard />} />
</Routes>
</div>
</BrowserRouter>
);
}
function Home() {
return <h1>Home</h1>;
}
function MyPage() {
return <h1>MyPage</h1>;
}
function Dashboard() {
return <h1>Dashboard</h1>;
}
export default App;
<BrowserRouter>
λ₯Ό νμ©ν μ μλ€.// Version 18 κΈ°μ€
import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter } from 'react-router-dom';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>
);
// Version 17 κΈ°μ€
import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter } from 'react-router-dom';
ReactDOM.render(<BrowserRouter><App/></BrowserRouter>, document.querySelector('#root'));
| μ°Έκ³ μλ£ |
- CodeStates - UrClass