https://router.vuejs.org/installation.html
Vue Router | The official Router for Vue.js
The official Router for Vue.js
router.vuejs.org
๋ผ์ฐํฐ๋ฅผ ์ค์นํ๋ค.

src -> router ํด๋๋ฅผ ์์ฑํ๊ณ
index.js๋ฅผ ์์ฑํ๋ค.

import { createWebHistory, createRouter } from "vue-router";
const routes = [
{
path: "ex) /list",
component: ex) List,
}
];
const router = createRouter({
history: createWebHistory(),
routes,
});
export default router;
routes ์์ ๊ฒฝ๋ก๋ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๋ค.
์๋์ ๊ฐ์ด
const routes = [
{
path: "/",
component: Home,
meta: { isMenu: false, dark: true },
},
{
path: "/message",
component: Message,
title: "๋ฉ์์ง",
meta: { isMenu: true, dark: false },
},
{
path: "/credit",
component: Credit,
title: "ํฌ๋ ๋ง",
meta: { isMenu: true, dark: false },
},
];
๊ทธ๋ฆฌ๊ณ
main.js์์ ๋ผ์ฐํฐ๋ฅผ ์ฌ์ฉํ๋ฉด๋จ

import { createApp } from "vue";
import "./style.css";
import App from "./App.vue";
import router from "./router";
createApp(App).use(router).mount("#app");
๊ฑฐ์ง ๋ค๋ธ๋ฐ์์ ์ฌ์ฉํ๊ฒ๋๋๋ฐ
์ฌ์ฉ์ ํ๋ ค๋ฉด
<nav>
<ul :class="{ 'text-gray-300': !scrolled, 'text-black': scrolled }">
<router-link
:to="route.path"
class="cursor-pointer"
v-for="route in routes"
:key="route"
>
<li class="inline-block w-14 mr-24" v-if="route.meta.isMenu">
{{ route.title }}
</li>
</router-link>
</ul>
</nav>
์ ๊ฐ์ด router-link ํ๊ทธ๋ฅผ ๊ฐ์ธ์ ์ฌ์ฉํ๋ฉด๋จ
๊ทธ๋ฆฌ๊ณ
router-view๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ฉด๋ค์ ์ถ๋ ฅ๋ ๊ณณ์ ์ง์ ํด์ฃผ๋ฉด ๋จ
<template>
<!-- ๋ค๋ธ๋ฐ -->
<Navbar />
<!-- ๋ผ์ฐํฐ ๋ทฐ -->
<router-view />
<!-- footer -->
<Footer />
</template>
'FRONTEND > Vue' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Vue] props๋ก ๋ฐ์ดํฐ ์ ๋ฌํ๊ธฐ (0) | 2024.02.22 |
|---|---|
| [Vue+Vite] vite-svg-loader ์ฌ์ฉํ๊ธฐ (0) | 2024.02.22 |
| [Vue+Vite] Vue+Vite ํ ์ผ์๋(Tailwind ) ์ฌ์ฉํ๊ธฐ (0) | 2024.02.20 |
| [Vue] ๋ชจ๋ฌ์ฐฝ ๋ง๋ค๊ธฐ (0) | 2024.02.20 |
| [Vue] ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ฐ ์ด๋ฏธ์ง ๊ฐ์ ธ์ค๊ธฐ (0) | 2024.02.20 |