일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- vue.js
- Props
- 정보처리기사
- React
- 2021 정처기 실기
- 컴포넌트
- 2021 정보처리기사
- State
- vue.js 로그인
- Vue.js 시작하기
- React 시작하기
- router 네비게이션
- 라이프사이클
- 함수형 컴포넌트
- 클래스형 컴포넌트
- router push
- router replace
- 중첩 라우트
- 2021 정보처리기사 실기
- 백준 1110 시간 초과
- defaultProps
- vuex 새로고침
- 정처기
- vue 로그인
- propsTypes
- vue 히스토리 모드
- vuex
- Vue.js 입문
- 2021 정처기
- router go
- Today
- Total
개발 일기
[Vue.js 시작하기] - Vuetify 로 웹 디자인 하기 본문
Vuetify란?
Vuetify는 Vue.js를 위한 컴포넌트 라이브러리이며, Material Design Framework다.
쉽게 말해 vue 에서 사용할 수 있는 용이한 UI 라이브러리라고 할 수 있다.
Vuetify — A Material Design Framework for Vue.js
Vuetify is a Material Design component framework for Vue.js. It aims to provide all the tools necessary to create be...
vuetifyjs.com
Vuetify 설치
Vuetify를 기존 프로젝트에 적용하려면 Vuetify를 node_modules에 반드시 설치해야한다.
이때 npm을 사용할 수 있고 다음과 같은 명령어를 사용하면 된다.
npm install vuetify
이후 /node_modules에 vuetify가 추가된 것을 확인할 수 있다.
Vuetify는 Material Design Icons, Material Icons, Font Awesome 4 및 Font Awesome 5를 지원하는 부트 스트랩으로
제공되기 때문에 아이콘 및 글꼴을 사용하기 위해서 다음 명령어 또한 사용해야한다.
npm install --save material-design-icons-iconfont
main.js
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import Vuetify from 'vuetify'
import 'vuetify/dist/vuetify.min.css'
import 'material-design-icons-iconfont/dist/material-design-icons.css'
Vue.config.productionTip = false
export const eventBus = new Vue()
//iconfont 인스턴스화 중에 옵션 추가
export default new Vuetify({
icons: {
iconfont: 'md' // 'md' || 'mdi' || 'fa' || 'fa4'
}
})
Vue.use(Vuetify)
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>',
vuetify: new Vuetify(),
})
Vuetify 설치 후, root 인스턴스인 main.js의 Vue 인스턴스 옵션에 Vuetify object를 추가해주면 된다.
Vuetify 사용 설정이 끝났으므로 하위 컴포넌트에서 Vuetify UI Components 를 맘껏 사용할 수 있다.
이제 간단한 페이지를 만들어보겠다.
App.vue
//이전 App.vue
<template>
<div id="app">
<router-view/>
</div>
</template>
<script>
export default {
name: 'App'
}
</script>
<style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>
이전의 UI는 style 태그에서 문서나 문서 일부에 대한 스타일 정보를 수정하였기 때문에 한계가 있었지만,
<template>
<v-app id="app">
<v-navigation-drawer v-model="drawer" app>
탭 안에 있을 UI
</v-navigation-drawer>
<v-app-bar app>
<v-app-bar-nav-icon @click="drawer = !drawer"></v-app-bar-nav-icon>
<v-toolbar-title>Test Application</v-toolbar-title>
</v-app-bar>
<v-main>
<v-card class="mx-auto" max-width="344">
<v-card-text>
<div>오늘의 단어</div>
<p class="display-1 text--primary">responsive web design</p>
<div class="text--primary">
화면의 크기가 자동으로 변하도록 만든 웹페이지 접근 기법을 말한다.
</div>
</v-card-text>
<v-card-actions>
<v-btn text color="deep-purple accent-4"> Learn More </v-btn>
</v-card-actions>
</v-card>
</v-main>
</v-app>
</template>
<script>
export default {
name: "App",
data() {
return {
drawer: null,
};
},
};
</script>
Vuetify 공식 홈페이지에서 제공하는 와이어프레임 및 다양한 UI 컴포넌트들을 활용하여 쉽게 반응형
웹 페이지를 만들 수 있었다.
위의 와이어프레임을 제외하고 다른 것들도 많이 있으니 페이지 성격에 따라 와이어프레임을 활용하면
정말 좋을 것 같다.
vuetifyjs.com/en/getting-started/wireframes/#examples
Wireframes
Select from a multitude of Vuetify Material Design layouts built to help kickstart your application.
vuetifyjs.com
Vue로 프로젝트를 진행하고 Vuetify를 사용하면서 다양한 UI 컴포넌트를 사용해보았다.
Vuetify UI 컴포넌트 문서에서 기본적으로 제공되고 있는 속성이나 기능을 변경 및 추가하고 싶을때
관련 api 문서를 읽어보면 속성 등을 활용하여 충분히 원하는 것을 만들어 낼 수 있다고 생각한다.
그래도 select나 data table 등에 복잡한 기능을 추가하고 싶을 때, 헤맸던 경험이
있기 때문에 추후에 모아서 정리할 예정이다.
'Vue.js' 카테고리의 다른 글
[Vue.js 시작하기] - axios 사용하여 서버 통신 하기 (1) | 2021.01.18 |
---|---|
[Vue.js 시작하기] - computed vs watch (0) | 2021.01.14 |
[Vue.js 시작하기] - 라이프사이클 (0) | 2021.01.12 |
[Vue.js 시작하기] - 컴포넌트 데이터 전달 방법 (0) | 2021.01.11 |
[Vue.js 시작하기] - 인스턴스 & 컴포넌트 (0) | 2020.12.20 |