-프로젝트 작성 중 어떠한 원리로 현재 메인 화면으로 잡고 있는 MainView.vue가 보여지는 건지 확인하고 싶었다.
-main.js의 경우 다음과 같이 되어 있다.
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
createApp(App).use(router).mount('#app')
router 를 이용해 App.vue를 이용해 앱을 생성한다는 거다.
그럼 App.vue에서 어떻게 부르는가.
<template>
<router-view/>
</template>
<style scoped>
@import '../src/css/main.css';
</style>
원래 예시 코드라면 nav 태그가 있고 아래에는 하드코딩 style가 있다. 일단 나는 css를 파일로 따로 빼기 때문에 아래 처럼 import하는 식으로 변경했다.
그럼 여기서 부르는 건 무엇인가? 바로 router-view 태그이다.
이 router-view가 없다면 일단 페이지 호출이 안된다. 이 태그가 있다면 /src/router/index.js가 불러와지며 이것이 메인이 된다.
그럼 index.js는 어떻게 되어 있는가.
import { createRouter, createWebHistory } from 'vue-router'
import MainView from '../views/MainView.vue'
/*const routes = [
{
path: '/',
name: 'main',
component: () => import('../views/MainView.vue')
}
]
*/
const routes = [{
path: '/',
name: 'main',
component: MainView
}]
const router = createRouter({
history: createWebHistory(process.env.BASE_URL),
routes
})
export default router
const routes 변수를 이용해서 해당 페이지들을 배정한다.
일단 맨 처음 보여지는 페이지라면 path 항목에 '/'만 놔둔다. 만약 파라미터를 따로 줘서 메뉴 별로 나눈다면 path 항목에 '/페이지이름'을 적는다. ex)'/home', '/about', '/login'
연결되는 vue 파일은 component에 적는다. 이 부분은 적는 방식이 2가지이다.
첫번째는 위 import 부분에 적는 것
import MainView from '../views/MainView.vue'
/*import 호출명 from 'vue 파일 명 경로'*/
두번째는 component 에 직접 입력 하는 방법이다.
component: () => import('../views/MainView.vue')
/*component: () => import('vue 파일 경로')*/
이를 통해 각 파일 경로를 부른다.
이렇게 필요 페이지를 부른다고 독학?적으로 분석해봤다. 사실은 더 복잡할 수도 있다. 이 부분은 나중에 책을 따로 보던가 해야할 것 같다.
'Vue 써봤니? 아니 처음이야' 카테고리의 다른 글
4. 기본 데이터값을 모달에서 받아서 표출하는 방법 (0) | 2025.01.29 |
---|---|
3. 캘린더 적용하기 (0) | 2025.01.27 |
2.Modal을 이용한 등록창 같은 페이지 띄우기 (0) | 2025.01.27 |
0. Vscode에 vue 설치하고 프로젝트 생성하기 (0) | 2025.01.24 |