Routing
Last updated
Last updated
์์ฒญํ ๊ฒฝ๋ก(URL)์ ๋ฐ๋ผ ๋ค๋ฅธ ํ์ด์ง(์ปดํฌ๋ํธ)๋ฅผ ๋ ๋๋งํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
์ง์ ๋ URL์ ๋ฐ๋ผ ๋ณด์ฌ์ค ์ปดํฌ๋ํธ๋ฅผ ๊ฒฐ์ ํ๋ ํ๋ก์ธ์ค
SPA(Single Page Application)๋ ์ด๊ธฐ์ ์๋ฒ์์ ํ์ด์ง(HTML)๋ฅผ ๋ฐ์์ค๊ณ , ์ดํ์ ๋ธ๋ผ์ฐ์ ์ ๋ฅผ ์ด์ฉํ์ฌ URL์ ์๋์ผ๋ก ๋ณ๊ฒฝํ๋ฉด์ ํด๋น URL์ ๋งค์นญ๋๋ ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํ๋ค.
์ด๋ฅผ ํตํด ํ์ด์ง ์ ํ ์์ด URL์ ๋ฐ๋ผ ์ปดํฌ๋ํธ๋ฅผ ๋์ ์ผ๋ก ๋ ๋๋ง ์ํฌ ์ ์๋ค.
๋ธ๋ผ์ฐ์ ์์ ์ ๊ณตํ๋ API๋ก, ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ธ๋ผ์ฐ์ ์ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ทผํ ์ ์๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ค. (DOM ์ ์ด, ๋ธ๋ผ์ฐ์ ํ์ ๊ธฐ๋ก, ์ฌ์ฉ์ ์์น์ ๋ณด, URL ์ ๋ณด ๋ฑ)
๋ธ๋ผ์ฐ์ ์ ํ์ ๊ธฐ๋ก์ ์กฐ์ํ ์ ์๋ API
์ฃผ์ ํ์์ค, ๋ค๋ก๊ฐ๊ธฐ, ์์ผ๋ก๊ฐ๊ธฐ ๋ฒํผ ๋ฑ ๊ด๋ จ๋ ์ด๋ฒคํธ๋ฅผ ์ ์ดํ๋ค.
.pushState(state, title, url)
state โ ์๋ก์ด History ํญ๋ชฉ์ ์ฐ๊ฒฐํ ์ํ ๊ฐ์ฒด, ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋๋ง๋ค popstate
์ด๋ฒคํธ ํธ์ถ
title โ ์์ง ์ฐ์ด์ง ์๋ ๊ธฐ๋ฅ, ๋ฏธ๋๋ฅผ ์ํด "" ๋ผ๋ ์ค์ ํ๋ผ๊ณ ๊ถ๊ณ ํ๋ค.
url โ ์ด๋ํ URL, ์ค์ ๋ก ๋ธ๋ผ์ฐ์ ๋ pushState
ํ์ ํด๋น URL๋ก ํ์ํ์ง ์์, ์ฆ url๋ง ์์
๋ธ๋ผ์ฐ์ ์ ์ธ์ History Stack์ ์ํ๋ฅผ ์ถ๊ฐ
ํด๋น URL๋ก ์ด๋
.replaceState(state, title, url)
ํ์ฌ History๋ฅผ ์์ ํ๊ณ ์ธ์๋ก ์ ๋ฌ๋ ๊ฐ์ผ๋ก ๋์ฒด
ํด๋น URL๋ก ์ด๋.
.back()
์ด์ ํ์ด์ง๋ก ์ด๋
.forward()
๋ค์ ํ์ด์ง๋ก ์ด๋
.go(num)
num โ ์๋์ ์ธ page index
์ง์ ํ ํ์ด์ง๋งํผ ์ด๋
ํ์ฌ ํ์ด์ง์ ์ฃผ์(URL)์ ๋ํ ์ ๋ณด์ ์๋ก๊ณ ์นจ, ๋ฆฌ๋ค์ด๋ ์ ๋ฉ์๋๋ฅผ ๊ฐ๊ณ ์๋ ๊ฐ์ฒด
window.location์ ํ์ฌ ํ์ด์ง์ ์์น ์ ๋ณด๋ฅผ ๊ฐ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
ํด๋น ๊ฐ์ฒด๋ ๋ธ๋ผ์ฐ์ ์ ์ ์ญ ๋ณ์๋ก ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ ๊ทผ ํ ์ ์๋ค.
window.location
window.document.location
document.location
location
origin์ ์ ์ธํ ํ๋กํผํฐ๋ ๋ณ๊ฒฝ๊ฐ๋ฅํ๋ค.
property๊ฐ ๋ณ๊ฒฝ๋๋ฉด ํ์ด์ง ์ด๋์ด ์ผ์ด๋๋ค.
URL: https://devload.com/routing?filter=routing#window.location
.origin
Base URL์ ๋ํ ์ ๋ณด
protocol + host name + port number
https;//devload.com
.protocol
ํํ ํ ์ฝ (http:, https:)
https:
.host
ํธ์คํธ ๋ช (๋๋ฉ์ธ ๋ช + ํฌํธ ๋ฒํธ)
devload.com
.hostname
๋๋ฉ์ธ ๋ช
devload.com
.port
ํฌํธ ๋ฒํธ
''
.pathname
/
๋ค์์ ์ค๋ ๊ฒฝ๋ก
/routing
.search
?
๋ค์์ ์ค๋ query string
?filter-routing
.hash
#
๋ค์ ์ค๋ Fragment Ideintifier
#window.location
.href
URL ์ ์ฒด ๊ฐ
https://devload.com/routing?filter=routing#window.location
.assign()
์ง์ ๋ URL๋ก ์ด๋ ํ๋ค
.replace()
์ง์ ๋ URL๋ก ์ด๋ ํ๋ค
ํ์ฌ ํ์ด์ง๋ฅผ ํ์ ๊ธฐ๋ก์์ ์ง์ด๋ค
.reload()
ํ์ฌ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจ
.toString()
URL ๋ฐํ
window.location.href<readonly>