๐ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ํ์ํ ์ด๋ก ์ ๋ฆฌ
Route ์ด๋ํ๊ธฐ
- Route ์ด๋ํ๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง๊ฐ ์๋ค.
Link ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
- Routes.js์์ ์ค์ ํ path๋ก ์ด๋ํ๋ ค๋ฉด Link ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
import React from 'react';
import { Link } from 'react-router-dom';
class Login extends React.Component {
render() {
return (
<div>
<Link to="/signup">ํ์๊ฐ์
</Link>
</div>
)
}
}
export default Login;
- react-router-dom์์ ์ ๊ณตํ๋ Link ์ปดํฌ๋ํธ๋ dom์์
<a>
ํ๊ทธ๋ก ๋ณํ ๋๊ธฐ ๋๋ฌธ์ ํ์ด์ง๋ฅผ ๋ฌด์กฐ๊ฑด ์ด๋ํ๋ ค๊ณ ํ ๋ ์ฌ์ฉํ๋ค.
withRouter HOC๋ก ๊ตฌํํ๋ ๋ฐฉ๋ฒ
- Link๋ฅผ ์ฌ์ฉํ์ง ์๊ณ element์ onClick ์ด๋ฒคํธ๋ฅผ ๋ฌ์์ ์ด๋ํ๊ณ ์ถ์ Router๋ก ๋๊ธฐ๋ ๋ฐฉ๋ฒ์ด๋ค.
- ์๋ goToSignup ์ด๋ผ๋ event handler์์ ์ฒ๋ผ this.props์ history๋ก ์ ๊ทผํด์ ์ด๋ํ ์ ์๋ค.
- ๋ฐ์ history์ push ๋ฉ์๋์ ์ด๋ํ path๋ฅผ ์ธ์๋ก ๋๊ฒจ์ฃผ๋ฉด ๊ทธ Route๋ก ์ด๋ํ ์ ์๋ค.
import React from 'react';
import { withRouter } from 'react-router-dom';
class Login extends React.Component {
goToSignup() {
this.props.history.push('/signup');
}
render() {
return (
<div>
<div
class="btn signup-btn"
onClick={this.goToSignup.bind(this)}
>
ํ์๊ฐ์
</div>
</div>
)
}
}
export default withRouter(Login);
- ์ด ๋ฐฉ๋ฒ์ Route๊ฐ ์ด๋ํ ๋ ์กฐ๊ฑด์ ์ฃผ๊ณ ์ํ ๋ ์ฌ์ฉํ๋ค.
- ํจ์ ์์์ ์ด๋ฃจ์ด์ง๋ ๋ก์ง์ด๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋ก์ง์ ๊ตฌํํ๊ณ , ์ํ๋ ๋์ ํ์ด์ง๋ฅผ ์ด๋์ํฌ ์ ์๋ค.
Mock Data
- mock data, mock-up data๋ผ๊ณ ๋ ํ๋ฉฐ ๊ฐ์ง ๋ฐ์ดํฐ, ์ํ ๋ฐ์ดํฐ๋ผ๊ณ ํ ์ ์๋ค.
- ์ค์ API์์ ๋ฐ์์จ ๋ฐ์ดํฐ๊ฐ ์๋๋ผ ํ์์ ์ํด์ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์ด ํ์ธํด ๋ณด๋ ์ฉ๋๋ก ํ์ฉํ ์ ์๋ค.
Mock Data๊ฐ ํ์ํ ์ด์
- API๊ฐ ์ค๋น ๋์ง ์์ ์ํ์์ ์ ๋๋ก UI๊ฐ ๊ตฌํ ๋๋์ง ํ์ธ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ
ํ๋ก์ ํธ๋ฅผ ์งํํ ๋ API๊ฐ ์์ฑ๋๊ธฐ ๊น์ง ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ mock data๋ฅผ ๋ง๋ค์ด ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ค๋ ์ํฉ์ ๋ฏธ๋ฆฌ ์์ํ๊ณ , ๋ค์ด์ฌ ๊ฒฝ์ฐ UI๊ฐ ๊ณํ๋๋ก ๋์ค๋์ง ํ์ธํ๊ธฐ ์ํจ