Routing
Last updated
Last updated
μμ²ν κ²½λ‘(URL)μ λ°λΌ λ€λ₯Έ νμ΄μ§(μ»΄ν¬λνΈ)λ₯Ό λ λλ§νλ κ²μ μλ―Ένλ€.
μ§μ λ URLμ λ°λΌ 보μ¬μ€ μ»΄ν¬λνΈλ₯Ό κ²°μ νλ νλ‘μΈμ€
SPA(Single Page Application)λ μ΄κΈ°μ μλ²μμ νμ΄μ§(HTML)λ₯Ό λ°μμ€κ³ , μ΄νμ λΈλΌμ°μ μ History API
λ₯Ό μ΄μ©νμ¬ 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
μ§μ ν νμ΄μ§λ§νΌ μ΄λ
popstate event
μ¬μ©μκ° λ€/μμΌλ‘ κ°κΈ° λ²νΌμ ν΄λ¦νκ±°λ, λΈλΌμ°μ μ μΈμ κΈ°λ‘μ μ‘°μνλ©΄ νΈμΆλλ€.
popstate
μ΄λ²€νΈκ° νΈμΆλλ©΄ μ΄λ₯Ό μ΄μ©ν΄μ, μ»΄ν¬λνΈλ₯Ό λμ μΌλ‘ μ
λ°μ΄νΈ μν¨λ€.
νμ¬ νμ΄μ§μ μ£Όμ(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
Query Stringμ΄λ λΈλΌμ°μ μμ μλ²μκ² μΆκ°μ μΈ μ 보λ₯Ό μ 곡νκΈ° μν΄(μ£Όλ‘ GET μμ²) μ¬μ©νλ λ¬Έμμ΄λ‘ ?
λ€μ key:value
μμΌλ‘ ꡬλΆμ§μ΄ λμ΄νλ€.
Fragment Identifierλ URI λ΄μμ νΉμ 리μμ€ μ‘°κ°μ κ°λ¦¬ν€λ μλ³μμ΄λ€. HTML λ΄μμ νΉμ λΆλΆμ κ°λ¦¬ν¬ λ μ¬μ©λ¨
.assign()
μ§μ λ URLλ‘ μ΄λ νλ€
.replace()
μ§μ λ URLλ‘ μ΄λ νλ€
νμ¬ νμ΄μ§λ₯Ό νμ κΈ°λ‘μμ μ§μ΄λ€
.reload()
νμ¬ νμ΄μ§λ₯Ό μλ‘κ³ μΉ¨
.toString()
URL λ°ν
window.location.href<readonly>