๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ/Vue.js

vue router / query vs params

by 1mj 2022. 6. 14.

vue router

๋ทฐ๋กœ ์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•  ๋•Œ ํ™”๋ฉด ์ „ํ™˜ ๋ฐ ํŽ˜์ด์ง€ ์ด๋™์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

์›น์—์„œ ๋ผ์šฐํŒ…์€ ํŽ˜์ด์ง€ ๊ฐ„์˜ ์ด๋™ ๋ฐฉ๋ฒ•์„ ๋œปํ•˜๋Š”๋ฐ ๋ทฐ๋Š” ํ™”๋ฉด ์ด๋™ ์‹œ DOM์„ ์ƒˆ๋กœ ๊ฐฑ์‹ ํ•˜์ง€ ์•Š๊ณ  ๋ณ€๊ฒฝ๋œ ์ปดํฌ๋„ŒํŠธ๋งŒ ๊ฐฑ์‹ ํ•˜์—ฌ ๊นœ๋นก์ž„ ์—†์ด ๋งค๋„๋Ÿฝ๊ฒŒ ์ „ํ™˜๋˜๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

 

<router-link>

ํŽ˜์ด์ง€ ์ด๋™ ํƒœ๊ทธ๋กœ ํ™”๋ฉด์—์„œ <a> ํƒœ๊ทธ๋กœ ์น˜ํ™˜๋˜์–ด ์‹คํ–‰๋œ๋‹ค.

 

:to ์†์„ฑ

  • path: ์ด๋™ํ•˜๋ ค๋Š” ๊ฒฝ๋กœ
  • name: ์ด๋™ํ•˜๋ ค๋Š” ๊ฒฝ๋กœ๋ฅผ ๋ผ์šฐํ„ฐ์— ์„ค์ •๋œ ์ด๋ฆ„์œผ๋กœ ์ง€์ •
  • query: query string ํ˜•ํƒœ๋กœ ์ „๋‹ฌ๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ, GET ๋ฐฉ์‹
  • params: name ์†์„ฑ์„ ์ง€์ •ํ•˜์—ฌ ์ด๋™ํ•  ๋•Œ(path๊ฐ€ ์•„๋‹Œ) ์ „๋‹ฌ๋  ํŒŒ๋ผ๋ฏธํ„ฐ, POST ๋ฐฉ์‹

 

query vs. params

๐Ÿง params๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด path๊ฐ€ ์•„๋‹Œ name์œผ๋กœ ์ด๋™ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค.

 

query

// ๋ณด๋‚ด๋Š” ์ชฝ
<router-link :to="{ path: '/main', query: { msg: 'hello' }}">ํŽ˜์ด์ง€ ์ด๋™</router-link>

// ๋ฐ›๋Š” ์ชฝ
{{ $route.query.msg }}

 

params

// ๋ณด๋‚ด๋Š” ์ชฝ
<router-link :to="{ name: 'main', params: { msg: 'hello' }}">ํŽ˜์ด์ง€ ์ด๋™</router-link>

// ๋ฐ›๋Š” ์ชฝ
{{ $route.params.msg }}

 

<router-view>

ํŽ˜์ด์ง€ ํ‘œ์‹œ ํƒœ๊ทธ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” URL์— ๋”ฐ๋ผ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ™”๋ฉด์— ๊ทธ๋ ค์งˆ ์˜์—ญ์ด๋‹ค.

'๊ฐœ๋ฐœ > Vue.js' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Vue.js xlsx ์—‘์…€ ๋‹ค์šด๋กœ๋“œ  (0) 2022.06.16
$nextTick()  (0) 2022.04.18
Vue ์ƒ๋ช…์ฃผ๊ธฐ  (0) 2022.04.13
Vue3 Composition API  (0) 2022.04.06
Vuex / ์ƒํƒœ๊ด€๋ฆฌ / Vuex ํŒจํ„ด ๋ฐ ์š”์†Œ  (0) 2022.04.05

๋Œ“๊ธ€