4. Navigation

Keyword

  • Web APIs - History

  • React Router - NavLink, Link, Navigate, useNavigate

1. Web APIs - History

  • ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” API

  • ํžˆ์Šคํ† ๋ฆฌ ์Šคํƒ์œผ๋กœ ํŽ˜์ด์ง€ ์ „ํ™˜์„ ๊ด€๋ฆฌํ•˜๊ณ , ์ด์ „ ํŽ˜์ด์ง€์™€ ๋‹ค์ŒํŽ˜์ด์ง€๋กœ ์ด๋™๊ฐ™์€ ๋ธŒ๋ผ์šฐ์ € ๋™์ž‘์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.


2. React Router

๋‹ค์Œ ํ‚ค์›Œ๋“œ๋“ค์€ React Router์—์„œ ์ง€์›ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ผ์šฐํŒ… ๊ธฐ๋Šฅ์ด๋‹ค.

<Link>์™€ ๊ธฐ๋Šฅ์€ ์œ ์‚ฌํ•˜์ง€๋งŒ, ํ˜„์žฌ ๊ฒฝ๋กœ์™€ ์ผ์น˜ํ•  ๋•Œ ์Šคํƒ€์ผ์„ ์ ์šฉํ•œ๋‹ค.

๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋งํฌ์˜ ์—ญํ• ์„ ํ•˜๋ฉฐ HTML์˜ <a> ํƒœ๊ทธ์™€ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ํŽ˜์ด์ง€ ์ƒˆ๋กœ๊ณ ์นจ ์—†์ด ํŽ˜์ด์ง€ ์ „ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  • Navigate๋Š” ๋ Œ๋”๋ง๋  ๋•Œ ํŽ˜์ด์ง€๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.

  • ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋ผ์šฐํŒ…์„ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์ด๋ฒคํŠธ ํ›„์— ํŽ˜์ด์ง€๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉ

  • <Navigate> ์ปดํฌ๋„ŒํŠธ๋Š” ์‚ฌ์‹ค์ƒ useNavigate ํ›…์„ ์‚ฌ์šฉํ•˜๋Š” ๋ž˜ํผ(Wrapper) ์ปดํฌ๋„ŒํŠธ๋กœ์„œ, useNavigate์™€ ๋™์ผํ•œ ์ธ์ž๋ฅผ props๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

useNavigate

  • ํ•จ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ํŽ˜์ด์ง€ ์ „ํ™˜์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋กœ ์ด๋™ํ•  ํŽ˜์ด์ง€ to๊ฐ’์„, ๋‘ ๋ฒˆ์งธ๋กœ ์˜ต์…˜ ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

import { Navigate, useNavigate } from 'react-router-dom';

<Navigate to="/about" />

const navigate = useNavigate();
navigate('/about');
  • ํžˆ์Šคํ† ๋ฆฌ ์Šคํƒ ๋ณ€๊ฒฝ๋Ÿ‰ ์ž…๋ ฅ ๋ฐฉ์‹๋„ ์žˆ๋‹ค.

import { Navigate, useNavigate } from 'react-router-dom';

<Navigate delta={-1} /> 

const navigate = useNavigate();
navigate(-1); // ์ด์ „ ํŽ˜์ด์ง€๋กœ ์ด๋™

์˜ต์…˜ ๊ฐ์ฒด

  • replace: ํŽ˜์ด์ง€ ์ด๋™ ํ›„ ์ด์ „ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์—†๋‹ค. ๋’ค๋กœ๊ฐ€๊ธฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋ฉ”์ธ ํŽ˜์ด์ง€('/')๋กœ ์ด๋™ํ•œ๋‹ค.

  • state: ํŽ˜์ด์ง€ ์ „ํ™˜ ์‹œ ์ƒํƒœ๋ฅผ ํ•จ๊ป˜ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค. { state: { productInfo: '์ƒํ’ˆ ์ •๋ณด' } }

  • preventScrollReset: ํŽ˜์ด์ง€ ์ „ํ™˜ ์‹œ ์Šคํฌ๋กค ์œ„์น˜๋ฅผ ๊ณ ์ •์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

Last updated