React Router 설정📍
: 다른 주소에 따라 다른 뷰(화면)을 보여주는 기능이다.
: React는 Framework 가 아닌 Library이기 때문에 별도의 Router 라이브러리를 따로 설치해서 적용시켜 주어야 한다.
-아래 두 가지 방법을 적용하기 전 먼저 react-router를 VScode 내 terminal 혹은 terminal에서 해당경로에 위치하게 한후 npm install react-router-dom --save
입력을 통해 설치한다.
--save
라고 표시하는 이유는 package.json
에 함께 저장되게 하기 위함이다.index.js
로 이동하여 Routes를 사용하기 위해 render 되는 화면에 Routes component를 추가하고 import 해준다.import React from 'react';
import ReactDOM from 'react-dom';
import './index.scss';
import Routes from './Routes';
ReactDOM.render(
<Routes />,
document.getElementById('root')
);
import React from 'react';
import {
BrowserRouter as Router,
Route,
Switch,
} from 'react-router-dom';
import Login from './pages/Login/login';
import Main from './pages/Main/main';
//routes를 통해 보여 질 두 화면의 경로를 import 한다.
class Routes extends React.Component {
render() {
return (
<Router>
<Switch>
<Route exact path="/" component={Login} />
<Route exact path="/main" component={Main} />
//기본이 될 화면에는 path `/`로 설정해주고 클릭해서 들어갈 화면은 화면의 이름과 동일하게 `/화면컴포넌트이름`으로 설정해준다
</Switch>
</Router>
)
}
}
export default Routes;
import { withRouter } from 'react-router-dom';
.
.
.
.
.
export default withRouter (Login);
goToMain () {
this.props.history.push('/main/)
}
onClick={this.goToMain.bind(this)}
import { Link } from 'react-router-dom';
<div>
<Link to="/main">로그인</Link>
</div>