[Vuetify] 16. 코딩컨벤션 (coding convention)
일일학습 Report 2020.07.15
코딩컨벤션 (coding convention)
- 코드를 작성할 때 추천하는 코딩 스타일을 제시하는 가이드라인
- 코드의 가독성을 높인다
- 버그가 줄어든다
- 유지보수가 원활해진다
ESLint
- JavaScript 언어의 코딩 컨벤션 중 하나로, 현재 나와있는 컨벤션 중 제일 유명하고 활용도가 높다
- 장점은 기본적인 컨벤션 외에 추가로 각 회사의 스타일에 맞게 설정이 가능하다
- airbnb의 eslint가 가장 유명한 듯하다
- airbnb javascript style guide - github
Vue
- JavaScript 프레임워크
Vue CLI
- CLI (Command Line Interface, 명령줄 인터페이스)
- Vue.js 개발을 위한 시스템으로 Vue.js에서 공식으로 제공하는 CLI
- Vue 프로젝트를 빠르게 구성할 수 있는 스캐폴딩을 제공
- 스캐폴딩 : 학습자에게 적절한 인지적 도움과 안내를 제공하여 학습을 촉진시키는 전략
- Vue와 관련된 오픈 소스들의 대부분이 CLI를 통해 구성이 가능하도록 구현되어 있음
Vue Router
- 라우팅 : 웹페이지간의 이동방법
- Vue.js의 공식 라우터
- 라우터는 컴포넌트와 매핑
- Vue를 이용한 SPA을 제작할 때 유용
- url에 따라 컴퍼넌트를 연결하고 설정된 컴포넌트를 보여준다
vue-router 연결
const router = new VueRouter({ routes: [ { path: '/', component: Main }, { path: '/login', component: Login } ] })
vue-router 이동 및 렌더링
<!-- 기본적으로 <router-link>는 <a> 태그로 렌더링 -->
<router-link to="/"> 메인페이지 </router-link>
<!-- 현재 라우트에 맞는 컴포넌트가 렌더링됨 -->
<router-view></router-view>
Vuex
- Vue.js가 효율적인 업데이트를 위해 세분화된 반응 시스템을 활용하도록 특별히 고안된 라이브러리
- Vue.js 애플리케이션에 대한 상태관리패턴 + 라이브러리
- 애플리케이션 모든 컴포넌트들의 중앙 저장소 역할 (데이터 관리)
- 부모 자식 단계가 많이 복잡해진다면 데이터의 전달하는 부분이 매우 복잡해짐
- 애플리케이션이 여러 구성 요소로 구성되고 더 커지는 경우 데이터를 공유하는 문제가 발생
=> vuex를 통해 어떤 상태를 관리하고 싶은지?
State
- 단일 상태 트리를 사용, 애플리케이션마다 하나의 저장소를 관리 (data)
Getters
- Vue 인스턴스의 Computed 같은 역할, State를 기반으로 계산(computed)
Mutations
- State의 상태를 변경하는 유일한 방법 (methods)
Actions
- 상태를 변이시키는 대신 액션으로 변이에 대한 커밋 처리 (비동기 methods)
Vuetify
- Vue.js를 위한 개발된 디자인 프레임워크
Vuetify ? BootStrap ?
- 읽고 고민해보면 좋을 글
- vuetify는 뷰에 특화되어 있고 컴포넌트 기반으로 움직인다
- vuetify 기본 레이아웃이 상당히 좋아보인다
웹팩 (Webpack)
- 오픈 소스 자바스크립트(JS) 모듈 번들러
- 의존성이 있는 모듈을 취하여 해당 모듈을 대표하는 정적 자산들을 생성함
- 의존성을 취한 다음 의존성 그래프를 만듦으로써 웹 개발자들이 웹 애플리케이션 개발 목적을 위해 모듈 방식의 접근을 사용할 수 있게 도와줌
SFC (싱글파일컴포넌트)
- 확장자가 .vue 인 파일
<template>
- 기본 언어 : html
- 각 *.vue 파일은 한번에 최대 하나의 <template> 블록을 포함할 수 있음
- 내용은 문자열로 추출되어 컴파일 된 Vue 컴포넌트의 template 옵션으로 사용
<script>
- 기본 언어 : js
- 각 *.vue 파일은 한번에 최대 하나의 <script> 블록을 포함할 수 있음
- ES2015(ES6)를 지원하여 import와 export를 사용할 수 있음
<style>
- 기본 언어 : css
- 각 *.vue 파일은 여러 개의 <style> 태그를 지원
- scoped 속성을 이용하여 현재 컴포넌트에서만 사용 가능한 css를 지정 가능