๐Ÿ“• Language/Vue

[vuejs] vue-router ์ค‘์ฒฉ ๋ผ์šฐํŒ…

a n u e 2023. 2. 7. 17:30

 

// App.vue : ์ตœ์ƒ์œ„ outlet

<template>
  <AppHeader></AppHeader> 
  <router-view></router-view>
  <AppFooter></AppFooter> 
</template>

์ด ๊ณณ์— ๋ Œ๋”๋ง๋˜๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ตœ์ƒ์œ„ outlet์ด ๋  ์ˆ˜ ์žˆ๋‹ค. ๋ Œ๋”๋ง๋œ ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ ์•ˆ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ค‘์ฒฉ๋œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค.

// About.vue

<template>
  <div>About</div>
  <router-view></router-view>
</template>

<script>
export default {
  name: "About",
};
</script>

<style></style>

 

App.vue๋ผ๋Š” ๊ฐ€์žฅ ๋ฐ”๊นฅ์˜ ์ปดํฌ๋„ŒํŠธ ์•ˆ์— About.vue๊ฐ€ ๋ Œ๋”๋ง๋˜๊ณ 

About.vue ์•ˆ์—์„œ ๋˜ Info1.vue, Info2.vue๊ฐ€ ๋ Œ๋”๋ง๋˜๋Š” ๊ตฌ์กฐ์ด๋‹ค.

 

children์„ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘์ฒฉ ๋ผ์šฐํŒ…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

import Main from "@/views/Main.vue";
import DiarydWrite from "@/views/DiaryWrite.vue";
import Info1 from "@/views/Info1.vue";
import Info2 from "@/views/Info2.vue";

const routes = [
  {
    path: "/",
    name: "Main",
    component: Main,
  },
  {
    path: "/about",
    name: "About",
    component: () =>
      import(/* webpackChunkName: "about" */ "../views/About.vue"),
    children: [
      {
        path: "info1",
        component: Info1,
      },
      {
        path: "info2",
        component: Info2,
      },
    ],
  },
];
export default routes;

 

url : http://localhost:8080/about/info2

 

url : http://localhost:8080/about/info1