์‹œ์ž‘ํ•˜๋ฉฐ

ํ† ์ดํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ React Router ์— ๋Œ€ํ•ด ์•Œ๊ฒŒ๋œ ์ ์„ ๊ธฐ๋กํ•ด๋‘์ž !

์ •๋ฆฌ

exact

exact ํ‚ค์›Œ๋“œ๋Š” ์ •ํ™•ํžˆ ์ผ์น˜ ๋˜์—ˆ์„ ๋•Œ๋งŒ ์ง€์ •๋œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์†์„ฑ์ด๋‹ค. ๋งŒ์•ฝ exact ํ‚ค์›Œ๋“œ ์—†์ด ๋ผ์šฐํ„ฐ๋ฅผ ์ง€์ •ํ•œ๋‹ค๋ฉด {URL}/, {URL}/1 ๋ชจ๋‘ ๊ฐ™์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋งํ•œ๋‹ค.

<Route exact path={PATH} component={COMPONENT} />

<Swtich>์™€์˜ ์ฐจ์ด

exact ํ‚ค์›Œ๋“œ๋งŒ์œผ๋กœ๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ์˜ ์ฒ˜๋ฆฌ๊ฐ€ ์–ด๋ ต๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ๋ผ์šฐํ„ฐ๊ฐ€ ์žˆ์„ ๋•Œ ์ง€์ •๋˜์ง€ ์•Š์€ url์— ์ ‘๊ทผํ•  ๊ฒฝ์šฐ Error404 ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋ง ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

<Router>
  <Route exact path="/" component={Foo} />
  <Route path="/bar" component={Bar} />
  <Route component={Error404} />
</Router>

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‚˜์˜จ ๊ฒƒ์ด <Switch>์ด๋‹ค. <Swtich>๋Š” ์ฒซ๋ฒˆ์งธ๋กœ ๋งค์นญ๋˜๋Š” path๋ฅผ ๊ฐ€์ง„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋ง ์‹œํ‚จ๋‹ค. ์ด๊ฒƒ์ด exact์™€ ๋‹ค๋ฅธ์ ์ด๋ฉฐ, ์ง€์ •๋˜์ง€ ์•Š์€ url์— ์ ‘๊ทผ ์‹œ Error404 ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋ง ์‹œํ‚จ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

strict

strict ํ‚ค์›Œ๋“œ๋Š” trailing slash๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ์—๋งŒ ์ผ์น˜ํ•œ๋‹ค.. ์ถ”๊ฐ€๋กœ ์Šฌ๋ž˜์‹œ ๋’ค์— URL์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค.

path location.path match
/one /one no
/one /one/ yes
/one /one/two yes

exact ํ‚ค์›Œ๋“œ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ด๋ ‡๊ฒŒ ์ž‘๋™ํ•œ๋‹ค.

path location.path match
/one /one yes
/one /one/ no
/one /one/two no

sensitive

sensitive ํ‚ค์›Œ๋“œ๋Š” case๋ฅผ ๊ฒ€์‚ฌํ•œ๋‹ค.

path location.path sensitive match
/one /one true yes
/One /one true no
/One /one false yes