728x90
반응형
react-router-dom 패키지에서 제공하는 BrowserRouter를 이용해서 웹 기반 애플리케이션에서의 라우팅을 구현해 보겠습니다.
[참고] https://github.com/ReactTraining/react-router/tree/master/packages/react-router-dom
#1 앱 생성
C:\react> npx create-react-app menu
#2 react-router-dom 설치
C:\react\menu> npm install react-router-dom
#3 Home.js 생성
import React from 'react';
const Home = () => {
return (
<div>
<h1>Home.js</h1>
</div>
);
}
export default Home;
#4 Contact.js 생성
import React from 'react';
const Contact = () => {
return (
<div>
<h1>Contact.js</h1>
</div>
);
}
export default Contact;
#5 Menu.js 생성
Link 컴포넌트를 이용해서 "/", "/contact", "/links" 링크를 제공하며, 링크를 클릭하면 Route 컴포넌트에 정의된 컴포넌트가 렌더링됩니다. 이때, render 속성을 이용해서 직접 렌더링을 정의할 수도 있습니다.
import React from 'react';
import './App.css';
import { BrowserRouter, Switch, Route, Link } from 'react-router-dom';
import Contact from './Contact.js';
import Home from './Home.js';
function Menu() {
return (
<div className="App">
<BrowserRouter>
<div>
<Link to="/">Home</Link>{' '}
<Link to="/contact">Contact</Link>{' '}
<Link to="/links">Links</Link>{' '}
<Switch>
<Route exact path="/" component={Home} />
<Route path="/contact" component={Contact} />
<Route path="/links" render={ () => <h1>Links</h1> } />
<Route render={ () => <h1>Page not found</h1>} />
</Switch>
</div>
</BrowserRouter>
</div>
)
}
export default Menu;
#6 브라우저를 통해 결과 확인
728x90
반응형
'개발 > 리액트' 카테고리의 다른 글
map 함수를 이용한 객체 배열에 새로운 속성 추가 (0) | 2023.02.27 |
---|---|
useContext Hook (0) | 2023.02.22 |
리액트 머티리얼 UI 컴포넌트를 이용한 할일 목록 구현 (0) | 2020.05.22 |
axios를 이용한 날씨 정보 조회 (0) | 2020.05.22 |
구글 로그인 결과를 저장하는 REST API 제작 (0) | 2020.05.20 |
댓글