window.history.back()
window.history.forward()
뒤로가기, 앞으로가기 버튼
history.pushState({page: 1}, "title 1", "?page=1")
history에 정보를 넣어 기억하게 할 수있다.
react-router의 다양한 기능들.
브라우저 네비게이션에 필요한 다양한 기능을 제공한다.
<Switch>
를 사용해서 404처리가 가능하다.HTML5 History API 사용
주소만 바꾸고 페이지는 다시 불러오진 않는다.
옛날 브라우저 전용
주소:8080/#/game
이런식으로 주소 사이 hash(#)이 붙는다.
브라우저의 주소와 무관하다.(일체 건들이지 않음)
브라우저가 아닌 환경에서 쓰기 좋다.
테스트 환경, 임베디드 웹앱, 리액트 네이티브 등에서 사용한다.
import { useHistory } from "react-router-dom";
function HomeButton() {
let history = useHistory();
function handleClick() {
history.push("/home");
}
return (
<button type="button" onClick={handleClick}>
Go home
</button>
);
}
useRouteMatch는 match객체의 값에 접근할 수 있게 해주는 hook이다.
또한 인자로 컴포넌트의 프로퍼티들(path, strict, sensitive, exact)을 가진 객체를 받을 수 있으며, 만약 path프로퍼티와 현재 페이지의 URL이 일치할 경우 해당 path의 match객체를 반환하고 일치하지 않을 경우 null을 반환한다.
만약 아무 인자도 넘겨주지 않고 해당 hook을 호출하면 withRouter HoC로 match객체를 접근했을 때처럼 제일 가까운 부모 컴포넌트의 match값을 리턴한다.
<Router>
<Route path="/:id" component={Detail}></Route>
<Router>
<Link to={`/${id}`}>
{text} <button onClick={onBtnClick}>delete</button>
</Link>
const id = useParams();