Vue.js 심화 3탄 37강: 방 속에 비밀 방이? 마법의 2층 침대 (Nested Routes)

안녕하세요! 가족과 함께하는 스마트 라이프입니다. 어제는 입구를 지키는 든든한 경비 요정(Navigation Guards)을 만났죠? 성이 점점 커지다 보니 이제 방 하나를 통째로 쓰기보다, 큰 방을 나누어 효율적으로 쓰고 싶어질 거예요. 오늘은 커다란 공부방 안에 수학 코너와 영어 코너를 따로 만드는 방 속의 작은 방, Nested Routes(중첩 라우트)를 소개합니다!

Vue.js 심화 3탄 37강: 방 속에 비밀 방이? 마법의 2층 침대 (Nested Routes)

1. Nested Routes: 마법의 2층 침대

중첩 라우트는 커다란 상자 안에 작은 상자들이 쏙쏙 들어있는 것과 같아요.

  • 부분 교체: 성의 전체 모습이나 큰 공부방의 벽지는 그대로 두고, 방 안의 책상(작은 방)만 수학 책상에서 영어 책상으로 슥 바꿀 수 있는 마법이에요.
  • 계단식 주소: 주소도 /study/math처럼 계단을 내려가듯 표현해서, 지금 내가 어떤 큰 방의 어떤 작은 코너에 있는지 한눈에 알 수 있답니다.

2. 왜 이 마법이 필요한가요?

  • 중복 제거: 모든 방에 똑같은 메뉴판을 갖다 놓을 필요가 없어요. 큰 방에 메뉴판을 한 번만 두면, 그 안의 작은 방들은 메뉴판을 공유할 수 있거든요.
  • 깔끔한 이동: 화면 전체를 새로 그리지 않고 필요한 부분만 슥 바뀌니까, 성을 구경하는 손님들의 눈이 훨씬 편안해져요.

3. 실전 마법: 공부방 안에 수학/영어 코너 만들기

지도(router.js)에 ‘자식 방(children)’을 등록하는 코드를 짜볼까요?

// 1. 지도에 큰 방과 그 안의 작은 방들을 그려요
const routes = [
  {
    path: '/study',
    component: StudyRoom, // 커다란 공부방
    children: [
      {
        path: 'math', // 주소는 /study/math가 돼요
        component: MathCorner
      },
      {
        path: 'english', // 주소는 /study/english가 돼요
        component: EnglishCorner
      }
    ]
  }
];

// 2. 큰 방(StudyRoom.vue) 안에 작은 방이 나타날 자리를 만들어요
<template>
  <div class="big-room">
    <h1>여기는 커다란 공부방이에요!</h1>
    <!-- 요술 주머니처럼 작은 방들이 여기서 나타나요! -->
    <router-view></router-view>
  </div>
</template>
Vue.js 심화 3탄 37강: 방 속에 비밀 방이? 마법의 2층 침대 (Nested Routes)

4. 스마트 라이프를 위한 가족 코딩 팁

아이들에게 ‘서랍장’에 비유해 보세요. 서랍장이라는 큰 가구 안에 양말 칸, 티셔츠 칸이 나뉘어 있는 것처럼 코딩도 정보를 나누어 담으면 찾기 훨씬 쉽다고요. 아이와 함께 만든 ‘에듀패드’에서 ‘학습 리포트’라는 큰 방을 만들고, 그 안에 ‘주간 점수’, ‘칭찬 스티커’ 같은 작은 방들을 중첩 라우트로 나누어 보세요. 아이는 복잡한 정보를 체계적으로 분류하고 정리하는 법을 자연스럽게 익히게 됩니다.

마치며: 정교한 성의 설계자

이제 여러분은 공간을 쪼개고 나누어 가장 효율적으로 관리하는 정교한 설계자 마법사가 되었습니다! 정말 똑똑한 성이 되었네요. 다음 시간에는 **’마법의 자동 완성(Composition API – Script Setup)’**이라는 주제로, 지금까지 배운 마법들을 더 짧고 강력하게 쓰는 최신 비법을 정리해볼게요! 내일 아침 9시에 만나요!