History
History
๋ผ์ฐํธ๋ก ์ฌ์ฉ๋ ์ปดํฌ๋ํธ์๊ฒ match, location๊ณผ ํจ๊ป ์ ๋ฌ๋๋ props ์ค ํ๋๋ก, history
๋ฅผ ํตํด ๋ค๋ก ๊ฐ๊ฑฐ๋ ์์ผ๋ก ๊ฐ๊ฑฐ๋ ํน์ url๋ก ๊ฐ ์ ์๊ฒ ๋๋ค.
React Router
match
: router path์ url์ด ๋งค์นญ๋ ์ ๋ณด๊ฐ ๋ด๊ฒจ ์๋ค.location
: ํ์ฌ ํ์ด์ง์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ๊ณ ์์ผ๋ฉฐ, url์ ์ฟผ๋ฆฌ ์คํธ๋ง์ ๊ฐ์ ธ์ฌ ์ ์๋ค.
import React, { useEffect } from "react";
function HistorySample({ history }) {
//๋ค๋ก๊ฐ๊ธฐ
const goBack = () => {
history.goBack();
};
//ํ์ผ๋ก ๊ฐ๊ธฐ
const goHome = () => {
history.push("/");
};
// ํ์ด์ง ์ดํ์, ๋ฉ์ธ์ง ์ถ๋ ฅ
useEffect(() => {
const unblock = history.block("์ ๋ง ๋ ๋์ค๊ฑด๊ฐ์?");
return () => {
unblock();
};
}, [history]);
return (
<div>
<button onClick={goBack}>๋ค๋ก๊ฐ๊ธฐ</button>
<button onClick={goHome}>ํ์ผ๋ก</button>
</div>
);
}
export default HistorySample;
push(path,[state])
: ์๋ก์ด ๊ฒฝ๋ก๋ฅผ history ์คํ์ผ๋ก ํธ์ํ์ฌ ํ์ด์ง ์ด๋replace(path,[state])
: ์ต๊ทผ ๊ฒฝ๋ก๋ฅผ history ์คํ์์ ๊ต์ฒดํ์ฌ ํ์ด์ง ์ด๋go(n)
: history ์คํ์ ํฌ์ธํฐ๋ฅผ n๋ฒ์งธ๋ก ์ด๋goBack()
: ์ด์ ํ์ด์ง๋ก ์ด๋goForward()
: ์ ํ์ด์ง๋ก ์ด๋block(prompt)
: history ์คํ์ posh/pop ๋์ ์ ์ด