[Vue3] History ๋ชจ๋“œ

chaewonยท2024๋…„ 8์›” 12์ผ
0
post-thumbnail
post-custom-banner

๐Ÿ’ป History ๋ชจ๋“œ

Router ์ด์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ history ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ history mode ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Hash - createWebHashHistory()
  • History - createWebHistory()
  • Memory - createMemoryHistory()

1-1. Hash ๋ชจ๋“œ

Vue Router๋ฅผ ํ†ตํ•ด URL๋กœ ํŽ˜์ด์ง€๋ฅผ ์ „ํ™˜ํ•  ๋•Œ ํžˆ์Šคํ† ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์„ ํ•ด์‹œ(#)ํ˜•์œผ๋กœ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ํ•ด์‹œ๋ชจ๋“œ๋Š” createWebHashHistory()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ

import { createRouter, createWebHashHistory } from 'vue-router'

const router = createRouter({
	history: createWebHashHistory(),
  	router: [
    	....  
    ]
})

๋‚ด๋ถ€์ ์œผ๋กœ ์ „๋‹ฌ๋˜๋Š” ์‹ค์ œ URL ์•ž์— ํ•ด์‹œ ๋ฌธ์ž(#)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. URL์˜ ์ด ์„น์…˜์€ ์„œ๋ฒ„๋กœ ์ „์†ก๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์„œ๋ฒ„ ์ˆ˜์ค€์—์„œ ํŠน๋ณ„ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ SEO์— ๋‚˜์œ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค. Hash๋Š” ์ง€์–‘ํ•˜๋ฉฐ HTML5๋ชจ๋“œ(createWebHistory())๋ฅผ ์‚ฌ์šฉํ•˜์ž


1-2. History ๋ชจ๋“œ(html5 ๋ชจ๋“œ)

Vue Router๋ฅผ ํ†ตํ•ด URL๋กœ ํŽ˜์ด์ง€๋ฅผ ์ „ํ™˜ํ•  ๋•Œ ํžˆ์Šคํ† ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์„ ํ•ด์‹œ(#)์—†์ด ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. Web API์ธ history.pushState()๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ๋กœ๋“œํ•˜์ง€ ์•Š๊ณ ๋„ URL ํƒ์ƒ‰์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. HTML5 ๋ชจ๋“œ๋Š” createWebHistory()๋กœ ์ƒ์„ฑ๋˜๋ฉฐ ๊ถŒ์žฅ ๋ชจ๋“œ์ด๋‹ค.

import { createRouter, createWebHistory } from 'vue-router'

const router = createRouter({
	history: createWebHistory(),
  	routes: [
      ...
    ]
})

createWebHistory()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด URL์€ "์ •์ƒ"์œผ๋กœ ๋ณด์ธ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ์šฐ๋ฆฌ์˜ ์•ฑ์ด ์ ์ ˆํ•œ ์„œ๋ฒ„ ์„ค์ •์ด ์—†๋Š” ๋‹จ์ผ ํŽ˜์ด์ง€ ํด๋ผ์ด์–ธํŠธ ์•ฑ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ http://oursite.com/user/id์— ์ ‘์†ํ•˜๋ฉด 404 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์„œ๋ฒ„์— ๊ฐ„๋‹จํ•˜๊ฒŒ ํฌ๊ด„์ ์ธ ๋Œ€์ฒด ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค. URL์ด ์ •์  ์—์…‹๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ์•ฑ์ด ์žˆ๋Š” ๋™์ผํ•œ index.htmlํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค.


๐Ÿ’ก hash์™€ history์˜ ์ฐจ์ด๋Š” #์ด ๋ถ™๊ณ  ์•ˆ ๋ถ™๊ณ ์˜ ์ฐจ์ด๋‹ค. ์ •ํ™•ํ•œ ์ฐจ์ด๋Š” ์šด์˜ ์„œ๋ฒ„์— ๋ฐฐํฌํ•  ๋•Œ ์ผ์–ด๋‚œ๋‹ค.

profile
์˜๋ฌธ์€ '์‚ถ์˜ ์ˆ˜์ค€'์„ ๊ฒฐ์ •ํ•˜๊ณ , ์งˆ๋ฌธ์€ '์‚ถ ์ž์ฒด'๋ฅผ ๋ฐ”๊พผ๋‹ค.
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€