Routing 이란?
routing 은 특정 주소에 특정 페이지를 보여주는게 라우팅(Routing)
react-router 사용하기
default로 react는 routing의 기능이 없기 때문에 라우팅 라이브러리를 사용해야 한다. 가장 많이 사용하는 routing library는 react-router
yarn add react-router-dom
프로젝트에 라우터를 적용
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
ReactDOM.render(<App />, document.getElementById('root'));
// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers: https://bit.ly/CRA-PWA
serviceWorker.unregister();
위 코드에서 아래와 같이 추가
import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter } from 'react-router-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
ReactDOM.render(
<BrowserRouter>
<App />{' '}
</BrowserRouter>,
document.getElementById('root')
);
// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers: https://bit.ly/CRA-PWA
serviceWorker.unregister();
두개의 컴포넌트 생성하기
import React from 'react';
const Search = () => {
return (
<div>
<h1>Search</h1>
</div>
);
};
export default Search;
import React from 'react';
const Home = () => {
return (
<div>
<h1>Home</h1>
</div>
);
};
export default Home;
App.js 를 수정
- app에서
exact={true}
를 사용하지 않으면search
로 검색했을때 Home, Search의 두개의 페이지가 화면에 중복으로 표시된다. - Link를 클릭하면 다른 주소로 이동시켜주는 컴포넌트
- a tag 를 사용하면 화면이 새로고침 된다. (페이지를 렌더링)
- Link 사용하면 페이지 새로고침 하지 않고
import React from 'react';
import { Route, Link } from 'react-router-dom';
import './App.css';
import Home from './components/Home';
import Search from './components/Search';
const App = () => {
return (
<div>
<Link to="/">홈</Link>
<Link to="/search">검색</Link>
<Route path="/" component={Home} exact={true}></Route>
<Route path="/search" component={Search}></Route>
</div>
);
};
export default App;
'Web 개발 > React' 카테고리의 다른 글
[React] 서브 라우트 (sub route) 정의하는 방법 (+코드 예제) (0) | 2020.02.09 |
---|---|
[React] URL의 파라미터와 URL 쿼리 차이와 예제코드 (0) | 2020.02.09 |
[React] 새로운 프로젝트 생성시 무조건 ESLint, Prettier 적용 (자동으로 코드 포맷 설정) (0) | 2020.02.09 |
[React] 환경 구성 (nvm, node, yarn, homebrew) MacOS (0) | 2020.02.09 |
[React] VS Code 유용한 확장 프로그램 (0) | 2020.02.09 |