๋ฐ˜์‘ํ˜•

์ฐจ์ด์  ์š”์•ฝ


์ด๋ฏธ์ง€ ์ถœ์ฒ˜ - SamanthaMing

  • window.location.assign(๋ฐ href) : ์ •๋ณด๋ฅผ ์ „์†กํ•˜์ง€ ์•Š๊ณ  ํŽ˜์ด์ง€๋งŒ ์ด๋™ / ๋’ค๋กœ ๊ฐ€๊ธฐ ๊ฐ€๋Šฅ
  • window.location.replace : ์ •๋ณด๋ฅผ ์ „์†กํ•˜์ง€ ์•Š๊ณ  ํŽ˜์ด์ง€๋งŒ ๊ต์ฒด / ๋’ค๋กœ ๊ฐ€๊ธฐ ๋ถˆ๊ฐ€
  • window.location.reload : ํ˜„์žฌ ํŽ˜์ด์ง€์˜ ๋ฌธ์„œ ๋‹ค์‹œ ๋กœ๋“œ

 

window.location.assign (href)


  • ๋’ค๋กœ ๊ฐ€๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์ด์ „ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค
  • ์ฃผ์†Œ ํžˆ์Šคํ† ๋ฆฌ์— ๊ธฐ๋ก๋œ๋‹ค
  • ๋’ค๋กœ ๊ฐ€๊ธฐ : location.assign ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ ํŽ˜์ด์ง€๋กœ ์ด๋™
  • ์šฉ๋„ : URL์„ ์ด๋™ํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ
  • location.href``location.assign ์ด ๋‘˜์€ ์‚ฌ์šฉ๋ฒ•๋งŒ ๋‹ค๋ฅผ ๋ฟ ๊ธฐ๋Šฅ์€ ๋™์ผํ•˜๋‹ค

 

window.location.href = "url"; // location.href ์‚ฌ์šฉ๋ฒ•
window.location.assign("url"); // location.assign ์‚ฌ์šฉ๋ฒ•

 

window.location.replace


  • ํ˜„์žฌ ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋กœ ๋ฎ์–ด ์”Œ์šฐ๋ฏ€๋กœ ์ด์ „ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ์ˆ˜ ์—†๋‹ค
  • ์ฃผ์†Œ ํžˆ์Šคํ† ๋ฆฌ์— ๊ธฐ๋ก๋˜์ง€ ์•Š๋Š”๋‹ค
  • ๋’ค๋กœ ๊ฐ€๊ธฐ : ๋ธŒ๋ผ์šฐ์ € ํžˆ์Šคํ† ๋ฆฌ์— ์žˆ๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ ํŽ˜์ด์ง€๋กœ ์ด๋™(๋’ค๋กœ๊ฐ€๊ธฐ๋ฅผ ํ˜ธ์ถœํ•œ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๋ถˆ๊ฐ€)
  • ์šฉ๋„ : ๋กœ๊ทธ์ธ, ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ ๋“ฑ ๋ณด์•ˆ์ƒ ์ด์ „ ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜๋Š” ๊ฒฝ์šฐ

 

window.location.replace("url"); // location.replace ์‚ฌ์šฉ๋ฒ•

 

history.push vs location.assign(href) ์ฐจ์ด์ 


๋ฆฌ์•กํŠธ์˜ ๋ผ์šฐํ„ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(react-router-dom)๋Š” Browser History API์˜ history.pushState()๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„๋œ ๊ฒƒ์ด๋‹ค. history.pushState()๋Š” ์ƒˆ๋กœ๊ณ ์นจ ์—†์ด ์ฃผ์†Œ๋งŒ ๋ฐ”๋€๋‹ค. react-router-dom์˜ history.push() ์—ญ์‹œ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ์ด ๋ฉ”์„œ๋“œ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ history.pushState()๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ URL์„ ๋ณ€๊ฒฝํ•˜๊ณ  ํ•ด๋‹น ๊ฒฝ๋กœ์— ๋งž๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋ง ํ•œ๋‹ค. Single Page Application(SPA)์„ ๊ฐœ๋ฐœํ•œ๋‹ค๋ฉด ์ƒˆ๋กœ๊ณ ์นจ์ด ๋ฐœ์ƒํ•˜๋Š” location.assign๋ณด๋‹ค history.push๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์ ํ•ฉํ•˜๋‹ค.

 

  1. HTTP ์š”์ฒญ
    • history.push : X
    • location.assign : O
  2. ์ƒˆ๋กœ๊ณ ์นจ
    • history.push : X
    • location.assign : O
  3. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ ์œ ์ง€
    • history.push : O
    • location.assign : X

 


๊ธ€ ์ˆ˜์ •์‚ฌํ•ญ์€ ๋…ธ์…˜ ํŽ˜์ด์ง€์— ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค. ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”
๋ฐ˜์‘ํ˜•