ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 코딩 자율학습단(Vue.js 프런트엔드 개발 입문) 11일차
    카테고리 없음 2024. 7. 3. 13:21

    [Vue11일차]
    ~8.1 뷰 라우터 다루기
    (종이책: p.341-350)

    뷰 라우터 설치

    npm install vue-router@4
    // package.json
    {
      "name": "ch08_01",
      "version": "0.0.0",
      "private": true,
      "type": "module",
      "scripts": {
        "dev": "vite",
        "build": "vite build",
        "preview": "vite preview"
      },
      "dependencies": {
        "vue": "^3.4.29",
        "vue-router": "^4.4.0"
      },
      "devDependencies": {
        "@vitejs/plugin-vue": "^5.0.5",
        "vite": "^5.3.1"
      }
    }

    라우팅 컴포넌트 생성

    HomeView.vue, AboutView.vue를 src/views/에 생성

    // src/views/HomeView.vue
    <template>
        <h1>Home View</h1>
    </template>
    // src/views/Aboutview.vue
    <template>
        <h1>About View</h1>
    </template>

    라우터 인스턴스 생성 및 등록

    import { createRouter } from 'vue-router';
    const router = createRouter({  //라우트 구성 객체
      history: ...,
      routes: ...,                 // 라우트 객체 포함
    });
    export default router;

    라우트 객체에 포함할 수 있는 속성

    path(필수): 웹 브라우저 주소창에 표시되는 URL의 일부로, 해당 라우트로 이동할 때 매치되는 경로 패턴을 정의

    name(선택): 라우트의 고유한 이름을 지정하는 속성으로, 이름을 통해 라우트를 참조할 수 있게 함.

    component(필수): 웹 브라우저 주소창에 표시되는 URL과 path 속성에 지정한 경로의 값이 일치할 경우 렌더링할 컴포넌트를 지정함.

    // src/router/index.js
    
    import { createRouter, createWebHistory } from "vue-router";
    import HomeView from "@/views/HomeView.vue";
    const router = createRouter({
        history: createWebHistory(),
        routes: [
            {
                path: '',
                name: 'home',
                component: HomeView,
            },
            {
                path: '/about',
                name: 'about',
                component: () => import('../views/AboutView.vue'),
            },
        ],
    });
    
    export default router;

    라우터 인스턴스 사용 등록

    // src/main.js
    
    import './assets/main.css'
    
    import { createApp } from 'vue'
    import App from './App.vue'
    import router from './router'
    
    const app = createApp(App)
    app.use(router)
    app.mount('#app')

    뷰 라우터 사용하기

    // src/App.vue
    
    <script setup>
    import { RouterLink, RouterView } from 'vue-router';
    </script>
    
    <template>
      <nav>
        <RouterLink to="/">home</RouterLink><br>
        <RouterLink to="/about">about</RouterLink>
      </nav>
      <RouterView />
    </template>

    첫화면 또는 home 클릭시
    about 클릭시

Designed by Tistory.