*
), Navigate
props.path로 *
(asterisk)를 넘겨주는 경우 모든 url에 대응한다. (Route는 순서대로 동작하므로, 일반적으로 *
는 가장 아래 배치한다.)
이를 이용해 유저가 잘못된 url로 접근 시 404 페이지를 띄워주거나 메인 페이지로 이동시키는 등의 처리를 할 수 있다. (<Route path="*" element={<Error404 />} />
)
<Navigate />
: 해당 url로 페이지를 이동시켜주는 컴포넌트이다.
import { BrowserRouter, Routes, Route, Link, Navigate } from "react-router-dom";
const Main = () => {
return(
<Link to='/abc'>Hello</Link>
)
}
root.render(
<div>
<BrowserRouter>
<Routes>
<Route path='/' element={<Main />} />
<Route path='/hi' element={<Main />} />
<Route path='*' element={<Navigate to='/hi' replace={true} />}
/>
</Routes>
</BrowserRouter>
</div>
);
props.replace가
true
인 경우
1. /로 접속
2.<Main />
을 render
3.<Link to='/abc' />
클릭
4.Navigate
에 의해 /hi로 이동
5. 뒤로가기 클릭
6. /로 이동
props.replace 가
false
인 경우
1. /로 접속
2.<Main />
을 render
3.<Link to='/abc' />
클릭
4.Navigate
에 의해 /hi로 이동
5. 뒤로가기 클릭
6. /abc로 이동
true
일 때와 달리, 아주 잠깐이지만 /abc로 이동했다가 /hi로 이동하는 것을 볼 수 있다.
👉 props.replace는 browser history에 영향을 끼친다.
자바스크립트 코드로 스타일링하는 것이다. (CSS를 작성 & 유지보수)
div
에도 영향을 미친다.css-in-js를 사용할 수 있게 도와주는 라이브러리이다.
사용법은 매우 간단하다.
styled.태그명`
css 코드
`
새 컴포넌트가 생성된다. 이때, Sample
의 자료형은 함수이다.
props
props를 넘길 수 있다. (JSX 문법을 활용)
Template Literals를 활용할 수 있다. (문자열 중간에 자바스크립트 사용)
styled-components가 props object를 주입한다.
CSS keyframes과 유사하나 keyframes도 함수로 제공한다.