Vue로 PWA 개발 - 그랜파 개발자.
웹 앱의 UI가 상단 헤더, 하단, 그리고 사이드 메뉴로 구성되어 있는 경우가 많습니다.
그래서 ChatGPT에게 물었습니다.
vuetify로 app-bar footer drawer가 있는 ui를 만들어줘
ChatGPT
아래는 Vuetify를 사용하여 App Bar, Footer, Drawer가 포함된 기본 UI를 구현한 코드입니다. 이 UI는 모바일과 데스크톱 환경 모두에서 잘 작동하며, Drawer는 사이드 메뉴로, App Bar는 상단 헤더로, Footer는 하단에 고정된 레이아웃으로 구성됩니다.
Vuetify UI 예제 코드
<template>
<v-app>
<!-- App Bar -->
<v-app-bar color="primary" dark>
<v-app-bar-nav-icon @click="toggleDrawer" />
<v-toolbar-title>My App</v-toolbar-title>
</v-app-bar>
<!-- Navigation Drawer -->
<v-navigation-drawer v-model="drawer" app>
<v-list>
<v-list-item-group>
<v-list-item v-for="(item, index) in menuItems" :key="index">
<v-list-item-icon>
<v-icon>{{ item.icon }}</v-icon>
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>{{ item.title }}</v-list-item-title>
</v-list-item-content>
</v-list-item>
</v-list-item-group>
</v-list>
</v-navigation-drawer>
<!-- Main Content -->
<v-main>
<v-container>
<h1>Welcome to My App</h1>
<p>This is the main content area. Add your components here.</p>
</v-container>
</v-main>
<!-- Footer -->
<v-footer app color="secondary" dark>
<v-container>
<p>© {{ new Date().getFullYear() }} My App. All rights reserved.</p>
</v-container>
</v-footer>
</v-app>
</template>
<script>
export default {
data() {
return {
drawer: false,
menuItems: [
{ title: "Home", icon: "mdi-home" },
{ title: "About", icon: "mdi-information" },
{ title: "Contact", icon: "mdi-phone" },
],
};
},
methods: {
toggleDrawer() {
this.drawer = !this.drawer;
},
},
};
</script>
<style>
body {
margin: 0;
}
</style>
주요 구성 요소 설명
1. App Bar
- : 앱의 상단에 고정되는 헤더.
- : 햄버거 메뉴 버튼(Drawer 열기/닫기).
- : 앱 이름이나 타이틀을 표시.
2. Navigation Drawer
- : 사이드 메뉴.
- v-model="drawer": Drawer의 열림/닫힘 상태를 제어.
- app: App Bar와 Footer의 크기 조정을 Drawer와 동기화.
3. Main Content
- : 페이지의 주요 콘텐츠 영역.
- : Vuetify의 기본 레이아웃 컨테이너로, 중앙 정렬 및 패딩 제공.
4. Footer
- : 앱 하단에 고정되는 푸터.
- app: 다른 구성 요소들과 크기를 조정하여 통합.
결과 화면
- App Bar: 상단에 파란색 배경으로 표시.
- Drawer: 왼쪽에서 열리며, 메뉴 항목(Home, About, Contact)이 포함됨.
- Main Content: 중간 영역에 페이지 콘텐츠 표시.
- Footer: 하단에 회색 배경으로 표시.
커스터마이징
- color="primary" 및 color="secondary" 속성을 변경하여 App Bar와 Footer의 색상을 사용자 지정.
- menuItems 배열을 수정하여 Drawer의 메뉴 항목을 추가 또는 변경.
- Main Content(v-main) 영역에 추가 컴포넌트나 페이지 내용을 삽입.
위 코드로 기본 UI를 구현한 후, 필요에 따라 각 요소를 커스터마이징하여 더 복잡한 레이아웃으로 확장할 수 있습니다. 😊
Vue 프로젝트 Beta Test : mylog, 일상의 기록
'그랜파 개발자의 프론트엔드 공부-Vue' 카테고리의 다른 글
Vue로 PWA 개발, ChatGPT에게 프론트엔드 앱을 위한 Router를 만들어 달라고 했습니다. (0) | 2024.11.29 |
---|---|
Vue로 PWA 개발, ChatGPT가 시키는 대로 프론트엔드 UI를 만들었습니다. (0) | 2024.11.28 |
Vue로 PWA 개발, ChatGPT의 프론트엔드와 연동하여 사용할 Firestore의 예제를 실행해 봅시다. (0) | 2024.11.26 |
Vue로 PWA 개발, ChatGPT에게 프론트엔드와 연동하는 Firestore의 예제를 요청했습니다. (0) | 2024.11.25 |
Vue로 PWA 개발, ChatGPT에게 프론트엔드 개발을 위한 서버리스 백엔드 Firebase를 물었습니다. (0) | 2024.11.24 |