[Vue] 🎐Vue Router μ‚¬μš©λ²•

TATAΒ·2023λ…„ 10μ›” 24일
0

Vue

λͺ©λ‘ 보기
1/3

β–· Vue Router

🎐 μ„€μΉ˜

npm install vue-router

main.js

import { createApp } from 'vue';
import App from './App.vue';
import router from '@/router';

createApp(App).use(router).mount('#app');

router/index.js

import { createRouter, createWebHistory } from 'vue-router';
import HomeView from '@/views/HomeView.vue';
import AboutView from '@/views/AboutView.vue';

const routes = [
  {
    path: '/',
    name: 'Home',
    component: HomeView,
  },
  {
    path: '/about',
    name: 'About',
    component: AboutView,
  },
];
const router = createRouter({
  history: createWebHistory('/'),
  routes,
});

export default router;

νŽ˜μ΄μ§€λ₯Ό λ¦¬λ‘œλ”©ν•˜μ§€ μ•Šκ³  URL에 λ§€ν•‘λœ νŽ˜μ΄μ§€λ₯Ό λ Œλ”λ§ ν•œλ‹€.

<RouterLink to="/about">About</RouterLink>

// active-class
<RouterLink active-class="active" to="/about">About</RouterLink>

🎐 ν˜„μž¬ 경둜, 경둜 이름 μ•Œμ•„λ‚΄κΈ°

<template>
  <ul>
    <li>$route.name: {{ $route.name }}</li>
    <li>$route.path: {{ $route.path }}</li>
  </ul>
</template>

🎐 useRouter, useRoute

useRouter : λΌμš°ν„° μΈμŠ€ν„΄μŠ€λ‘œ javascriptμ—μ„œ λ‹€λ₯Έ νŽ˜μ΄μ§€λ‘œ 이동할 수 μžˆλ‹€.
useRoute : ν˜„μž¬ ν™œμ„± 라우트 정보에 μ ‘κ·Όν•  수 μžˆλ‹€. (읽기 μ „μš©)

<script setup>
import { useRoute, useRouter } from 'vue-router';

const router = useRouter();
const route = useRoute();
console.log('route.name: ', route.name);
console.log('route.path: ', route.path);
const goAboutPage = () => router.push('/about');
</script>
<template>
  <h1>Home Page</h1>
  <button @click="goAboutPage">About νŽ˜μ΄μ§€λ‘œ 이동</button>
</template>

🎐 동적 λΌμš°νŒ… - params

const routes = [
  {
    path: '/posts/:id',
    component: PostDetailView,
  },
  {
    path: '/posts/:id/edit',
    component: PostEditView,
  },
];

const router = createRouter({
  history: createWebHistory('/'),
  routes,
});
<div>User {{ $route.params.id }}</div>'
profile
🐾

0개의 λŒ“κΈ€