vue-router

ํŽ˜์ด์ง€๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๋•Œ ๋ผ์šฐํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

1. ์„ค์น˜

npm install vue-router@4

2. ๋ผ์šฐํ„ฐํŒŒ์ผ ์ƒ์„ฑ

import { createWebHistory, createRouter } from "vue-router";

const routes = [
  {
    path: "/๊ฒฝ๋กœ",
    component: importํ•ด์˜จ ์ปดํฌ๋„ŒํŠธ,
  }
];

const router = createRouter({
  history: createWebHistory(),
  routes,
});

export default router; 

3. main.js ๋ผ์šฐํ„ฐ ๋“ฑ๋ก

import router from './router'
createApp(App).use(router).mount('#app') 

4. ์„ค์ •ํ•œ ๋ผ์šฐํ„ฐ๋กœ ๊ตฌ๋ถ„๋œ ํŽ˜์ด์ง€์— ์ž๋ฆฌ ์„ค์ •

ex) App.vue์˜ HTML ๋‚ด๋ถ€ ์•„๋ฌด ๊ณณ์—๋‚˜ ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ผ์šฐํ„ฐ๋กœ ๊ตฌ๋ถ„๋œ ํŽ˜์ด์ง€๋ฅผ ๊ทธ ์ž๋ฆฌ์— ๋ณด์—ฌ์ค€๋‹ค.

<router-view></router-view>

5. ํŽ˜์ด์ง€ ์ด๋™ ๋งํฌ ์„ค์ •

to=""์•ˆ์— ๋งˆ์Œ๋Œ€๋กœ ๊ฒฝ๋กœ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

<router-link to="/list">์ด๋™ํ•˜๊ธฐ</router-link>

6. ๋™์  ๋ผ์šฐํ„ฐ ์„ค์ •

router.js

const routes = [
	{
    	path : '/detail/:id,
        component : Detail,
    }
]

/detail/ ๋’ค์— ์•„๋ฌด๊ฑฐ๋‚˜ ์ž‘์„ฑํ–ˆ์„ ๋•Œ ํ•ญ์ƒ Detail.vue๋ฅผ ๋ณด์—ฌ์ฃผ๋ผ๋Š” ๋ง์ด๋‹ค.
:์ฝœ๋ก ๊ธฐํ˜ธ๋ฅผ ๋ถ™์ด๊ณ  ๋’ค์— ์•„๋ฌด๊ฑฐ๋‚˜ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

7. ๋™์  ๋ผ์šฐํ„ฐ์—์„œ ์„ค์ •ํ•œ :๋’ค์— ์žˆ๋Š” URL์— ๊ฐ€์ ธ์˜ค๊ธฐ

{{ $route.params.ํŒŒ๋ผ๋ฏธํ„ฐ๋ช… }}

8. nested routes

ํŠน์ • ํŽ˜์ด์ง€ ๋‚ด์—์„œ ๋ผ์šฐํŠธ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒฝ์šฐ๋ฅผ nested routes๋ผ๊ณ  ํ•œ๋‹ค.

const routes = [
  {
    path : '/fruit/:id',
    component : Fruit,
    children : [
      { path : 'banana', component : Banana},
      { path : 'apple', component : Apple },
    ]
  }
]

Fruit.vue์— <router-view></route-view>๋ผ๋Š” ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด /fruit/:id/banana๋กœ ์ ‘์†ํ–ˆ์„ ๋•Œ <router-view>์ž๋ฆฌ์— Banana ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ณด์ธ๋‹ค.

9. ํŽ˜์ด์ง€ ์ด๋™ ๋งํฌ ์„ค์ •2

$router.push('/๊ฒฝ๋กœ')

์„ค์ •ํ•œ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•œ๋‹ค.

$router.go(-1)

๋’ค๋กœ๊ฐ€๊ธฐ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
1๋ผ๊ณ  ์ž‘์„ฑํ•˜๋ฉด ์•ž์œผ๋กœ ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค.

$router ๋ณ€์ˆ˜๋ฅผ ์ž˜ ์‚ฌ์šฉํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ € ๋ฐฉ๋ฌธ๊ธฐ๋ก์„ ๋“ค์ถฐ๋ณด๊ฑฐ๋‚˜ ๋งˆ์Œ๋Œ€๋กœ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

profile
์˜ค๋Š˜๋ณด๋‹จ ๋‚ด์ผ์ด ๊ฐ•ํ•œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค!!๐Ÿง‘๐Ÿปโ€๐Ÿ’ป

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

Powered by GraphCDN, the GraphQL CDN