용어 정리

- 유기적 : 많은 조직, 요소 등이 모여 하나를 이루고 서로 긴밀히 연관되어 서로 떼어 낼 수 없는 (것).

- 뷰의 반응성 : 뷰가 데이터 변화를 감지했을 때 자동으로 화면을 다시 갱신하는 특성이다.

- 컴포넌트 : 화면의 영역을 일정한 단위로 쪼개어 재활용 가능한 형태로 관리하는 것이다.

 

개요

상태 관리 패턴이자 라이브러리이다.

상태관리란?

여러 컴포넌트 간의 데이터 전달과 이벤트 통신을 한 곳에서 관리하는 패턴을 의미한다.

 

상태관리의 필요성

- Vue는 컴포넌트를 조합하여 화면을 구성한다.

- 한 화면에 많은 컴포넌트를 사용함에 따라, 컴포넌트 간 통신이나 데이터 전달을 유기적으로 관리할 필요가 있다.

 

상태관리 패턴으로 해결할 수 있는 문제란?

- 일반적으로 App의 규모가 커지면 다음과 같은 문제가 발생한다.

1) 뷰의 컴포넌트 통신 방식인 props, event emit 때문에 중간에 거쳐야 할 컴포넌트가 많아지는 것.

2) 위의 문제를 피하기 위해 EventBus를 사용함에 따라 컴포넌트간 데이터의 흐름을 파악하기 어려워 지는 것.

- 위의 문제들을 해결하기 위해 모든 데이터 통신을 한 곳에서 중앙 집중식으로 관리하는 것이 상태 관리이다.

 

Vuex 구성 요소

1. state : 여러 컴포넌트간 공유할 데이터를 정의한 것이다.

2. getters : state를 컴포넌트에서 취득할 시, 복잡한 로직을 거치지 않도록 getter 메소드를 vuex에 정의한 것이다.

3. mutations : state 값을 변경(state 관리)하는 로직으로 setter 메소드를 vuex에 정의한 것이다.

4. actions : 비동기 처리 로직들을 vuex에 정의한 것이다.

 

폴더 구조화 & Name Spacing

규모 있는 복잡한 앱 제작 시, getters, mutations, actions의 이름을 유일하게 정하지 않으면 namespace 충돌이 난다.

이에 다음 두 가지 방법이 있다.

(1) 네임스페이스를 구분하기 위해 types.js로 각 속성의 이름들을 빼고 store.js와 각 컴포넌트에 import하여 사용.

(2) 혹은 modules라는 폴더로 만들어 각 단위별로 파일을 쪼개서 관리.

 

핵심 요약

1. vuex는 컴포넌트간 데이터 전달, 이벤트 통신을 중앙 집중식으로 관리하기 위한 라이브러리이다.

2. vue는 컴포넌트를 조합하여 화면을 만들고, 컴포넌트 간 복잡한 데이터 전달을 관리하기 위해 vuex를 사용한다.

3. vuex의 구성요소 중, state는 데이터의 보관, getters는 데이터의 취득 로직, mutations는 데이터의 갱신 로직,

   actions는 비동기 처리 로직을 담당한다.

 

출처 : 

joshua1988.github.io/web-development/vuejs/vuex-start/

 

Vuex 시작하기 1 - Vuex와 State

Vue 중급으로 레벨업 하기. 상태 관리란 무엇인가? Vuex를 이용한 상태 관리. state 소개

joshua1988.github.io

joshua1988.github.io/web-development/vuejs/vuex-getters-mutations/

 

Vuex 시작하기 2 - Getters 와 Mutations

Vue 중급으로 레벨업. Vuex 의 Getters 와 Mutations 사용법 배우기

joshua1988.github.io

joshua1988.github.io/web-development/vuejs/vuex-actions-modules/

 

Vuex 시작하기 3 - Actions 와 폴더 구조화

Vue 중급으로 레벨업. Vuex 의 Actions 와 폴더 구조화 익히기

joshua1988.github.io

 

반응형

'■ 웹 개발 > Vue.js' 카테고리의 다른 글

[10] Virtual DOM in Vue.js  (0) 2020.11.16
[9] Vue CLI  (0) 2020.11.16
[8] Vue Loader  (0) 2020.11.16
[7] Single File Component  (0) 2020.11.16
[6] Vue 템플릿  (0) 2020.11.16

개요

자바스크립트 객체로 DOM의 모양을 잡아 놓고, 화면 렌더링 횟수를 최소화하여 브라우저의 부하를 줄이는 기술이다.

 

기존의 렌더링

화면의 DOM을 추가하거나 삭제하는 등의 변경이 일어날 때 마다 화면을 다시 그린다.

반응형

'■ 웹 개발 > Vue.js' 카테고리의 다른 글

[11] Vuex  (0) 2020.11.16
[9] Vue CLI  (0) 2020.11.16
[8] Vue Loader  (0) 2020.11.16
[7] Single File Component  (0) 2020.11.16
[6] Vue 템플릿  (0) 2020.11.16

개요

뷰 프로젝트를 생성하기 위한 명령어 도구이다.

 

전제조건

- Node.js LTS 버전이 설치되어 있어야 한다.

 

CLI 설치 방법

프로젝트 생성 방법

웹 애플리케이션 실행 방법

 

반응형

'■ 웹 개발 > Vue.js' 카테고리의 다른 글

[11] Vuex  (0) 2020.11.16
[10] Virtual DOM in Vue.js  (0) 2020.11.16
[8] Vue Loader  (0) 2020.11.16
[7] Single File Component  (0) 2020.11.16
[6] Vue 템플릿  (0) 2020.11.16

개요

싱글 파일 컴포넌트를 브라우저에서 실행할 수 있게 자바스크립트 파일로 변환해주는 웹팩 로더이다.

 

장점

1) ES6을 지원한다.

2) <style>과 <template>에 대한 각각의 웹팩 로더를 지원한다. ex) sass, jade

3) 각 .vue 컴포넌트의 스코프로 좁힌 css 스타일링을 지원한다.

4) 웹팩의 모듈 번들링에 대한 지원과 의존성 관리가 제공된다.

5) 개발 시 Hot Module Replacement(HMR)을 지원한다.

 

※ Hot Module Replacement(HMR)이란?

- 브라우저를 새로 고치지 않아도 웹팩으로 빌드한 결과물이 웹App에 실시간으로 반영될 수 있게 도와주는 설정이다.

- 브라우저 새로 고침을 위한 LiveReload 대신에 사용할 수 있으며 웹팩 데브 서버와 함께 사용할 수도 있다.

- 리액트, 앵귤러, 뷰 등 대부분 프레임워크에서 HMR을 사용할 수 있는 로더를 지원하고 있다.

 

출처 : 

joshua1988.github.io/web-development/vuejs/vuejs-tutorial-for-beginner/#vuejs%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

 

Vue.js 입문서 - 프론트엔드 개발자를 위한

Vue.js를 시작하기 위한 소개, 구성요소, 구조, Vue Router, HTTP 통신 라이브러리 등

joshua1988.github.io

joshua1988.github.io/webpack-guide/devtools/hot-module-replacement.html

 

Hot Module Replacement | 웹팩 핸드북

HMR(Hot Module Replacement) HMR은 브라우저를 새로 고치지 않아도 웹팩으로 빌드한 결과물이 웹 애플리케이션에 실시간으로 반영될 수 있게 도와주는 설정입니다. 브라우저 새로 고침을 위한 LiveReload

joshua1988.github.io

 

반응형

'■ 웹 개발 > Vue.js' 카테고리의 다른 글

[10] Virtual DOM in Vue.js  (0) 2020.11.16
[9] Vue CLI  (0) 2020.11.16
[7] Single File Component  (0) 2020.11.16
[6] Vue 템플릿  (0) 2020.11.16
[5] Axios  (0) 2020.11.16

개요

- 특정 화면 영역의 HTML, CSS, JS 코드를 한 파일에서 관리하는 방법이다.

 

특징

- 파일 확장자는 vue이며 HTML 파일에서 뷰 개발을 진행할 때의 한계를 극복할 수 있다.

- 싱글 파일 컴포넌트로 개발하려면 Webpack과 같은 번들링 도구가 필요하다.

 

HTML 파일에서 뷰 개발을 진행할 때의 한계점

1) 모든 컴포넌트에 고유의 이름을 붙여야 한다.

2) js 파일에서 template 안의 HTML 문법 강조가 되지 않는다.

3) js 파일 상에서 css 스타일링 작업이 거의 불가능하다.

4) ES5를 이용하여 계속 앱을 작성할 경우 Babel 빌드가 지원되지 않는다.

 

싱글 파일 컴포넌트의 기본 골격

 

출처 : joshua1988.github.io/web-development/vuejs/vuejs-tutorial-for-beginner/#vuejs%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

 

Vue.js 입문서 - 프론트엔드 개발자를 위한

Vue.js를 시작하기 위한 소개, 구성요소, 구조, Vue Router, HTTP 통신 라이브러리 등

joshua1988.github.io

 

반응형

'■ 웹 개발 > Vue.js' 카테고리의 다른 글

[9] Vue CLI  (0) 2020.11.16
[8] Vue Loader  (0) 2020.11.16
[6] Vue 템플릿  (0) 2020.11.16
[5] Axios  (0) 2020.11.16
[4] Vue 라우터  (0) 2020.11.16

개요

vue.js로 화면을 조작하기 위해 제공되는 문법이다.

 

종류

1) Data Binding

- 데이터와 화면을 연결하기 위한 방법으로, 간단한 표현식 {{ }} 으로 화면과 vue 인스턴스의

  data, computed, props 속성을 연결할 수 있다.

- 간단한 자바스크립트 표현식도 화면에 표시할 수 있다.

 

2) Directive

- 화면의 DOM 조작을 쉽게 할 수 있는 문법으로, v- 접두사가 붙은 태그를 제공한다.

ex)

- v-html

span의 내용은 rawHtml로 대체되고 이 때 데이터 바인딩은 무시된다.

이중 중괄호는 HTML이 아닌 일반 텍스트로 데이터를 해석하기 때문에 실제 HTML을 출력하려면 v-html을 사용한다.

 

- v-bind

동적으로 하나 이상의 컴포넌트 속성 또는 표현식을 바인딩하여 반응적으로 HTML 속성을 갱신할 수 있다.

또한, 약어인 콜론( : )으로 대체하여 표기할 수 있다.

 

- v-on

DOM 이벤트를 수신한다. 또한, 약어인 at(@)으로 대체하여 표기할 수 있다.

 

 

3) Filters

- 화면에 표시되는 텍스트의 형식을 편하게 바꿀 수 있도록 고안된 기능으로 | (파이프)를 사용하여

  여러 개의 필터를 적용할 수 있다.

 

출처 : 

joshua1988.github.io/web-development/vuejs/vuejs-tutorial-for-beginner/#vuejs%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

 

Vue.js 입문서 - 프론트엔드 개발자를 위한

Vue.js를 시작하기 위한 소개, 구성요소, 구조, Vue Router, HTTP 통신 라이브러리 등

joshua1988.github.io

kr.vuejs.org/v2/guide/syntax.html

 

템플릿 문법 — Vue.js

Vue.js - 프로그레시브 자바스크립트 프레임워크

kr.vuejs.org

 

반응형

'■ 웹 개발 > Vue.js' 카테고리의 다른 글

[8] Vue Loader  (0) 2020.11.16
[7] Single File Component  (0) 2020.11.16
[5] Axios  (0) 2020.11.16
[4] Vue 라우터  (0) 2020.11.16
[3] Vue 컴포넌트  (0) 2020.11.16

+ Recent posts