[Vue] Vue.js 기본 원리


1. Vue.js ?  

   자바 스크립트 프레임 워크이며 데이터와 뷰를 연결해 주는 역할을 한다. 

 MVVM(Model-View-ViewModel)이라는 방식을 기본으로 Vue 가 만들어져 있다.

 

 

2. 기본 MVVM 구조  

 

 

"Model(Vue 안에 준비된 데이터)" 

데이터는 무엇인가? 

+

"View(HTML 에서 표시되는 요소)"

표시되는 요소는 무엇인가? 

+

"ViewModel(View 와 Model을 어떻게 연결할까)"

어떤 식으로 연결되는가? 

 

 

 

 

3. Vue.js 의 관점에서 더 자세히 보는 MVVM 구조 

MVVM 구조를 Vue의 관점에서 생각해 보았을 때는 아래처럼 확인 할 수있다. 

 

 

img.pngvue의 MVVM 구조

 

1. 데이터는 무엇인가 (Model

필요한 데이터를 생각하고 넣어 둘것 (웹 페이지'html' 에서 바뀌는 부분(데이터가 들어가는 속성) 에 매핑된다.)

2. 표시되는 요소는 무엇인가(View

그 데이터가 HTML의 어느 부분에 어떤 형식(표현방식)으로 표시되는가 생각할 것 

3. 어떤 식으로 연결 되는가(ViewModel

HTML의  부분이 조작(변경)될 때 데이터가 어떤 형식으로 변화되고  생각할 것 , (Model 과 View 의 연관 방식)

 

img.png

 

 다음 그림에서 보이는 것은  Model(데이터를 다루고 있는 Vue.js 부분)과  View(ViewHTML 로 정의된 요소), 그리고

"그 데이터와 뷰를 어떤 식으로 연결시키고 있을까?"라는 이미지로 생각해 볼 수 있다. 

 

데이터의 종류는 숫자, 문자, 불리언, 배열, 객체 등 자바스크립트에서 사용할 수 있는 데이터라면 모두 사용 가능하다. 

순서는 데이터를 만들고, 표시하는 요소를 준비한 후, 연결한다. 

 



4. Vue.js 의 주요 기능 

 

Vue.js 는 기능이 간단하며 많지 않다. 주요 기능은 아래와 같다. 

기능 서식
데이터를 있는 그대로 표시{{데이터}}
요소의 속성을 데이터로 지정v-bind
입력폼과 데이터의 연결v-model
이벤트 연결v-on
조건에 따라 표시v-if
반복해서 표시v-for
데이터를 사용한 계산 computed
 watch
표시/비표시에 애니메이션 처리transition
컴포넌트 조립component

 

 

5. 기본 원리를 설명하는 예제 

 

img.png

 

1. Vue.js 라이브러리를 CDN 으로 설치 

 

2. Vue 와 연결되는 HTML 요소를 작성한다. HTML 은 표시되고 싶은 곳에 "{{프로퍼티명}}" 혹은 "v-text="프로퍼티명"" 으로 지정한다. 

 

3. script요소에서 Vue 인스턴스를 작성한다. 

 

 

6. 기타 Vue 용어 정리

 

6.1 머스태시(Mustache) 

  • 콧수염이라는 의미로 데이터를 있는 그대로 표시할때 사용한다. {{데이터}}
  • JavaScript를 사용하여 작성 할 수 있다.
<div id="app">
	<p> {{ myPrice * 1.08}} </p> // 출력 -> 540 
    <p> {{ "안녕하세요" + myPrice + 님}} </p> // 안녕하세요 홍길동님 
    <p> {{ myName.substr(0,1) }} </p> // 홍
</div>

6.2 데이터 바인딩 

  •  Vue 인스턴스의 데이터가 웹 페이지상의 표시와 결합 하는 것

6.3 디렉티브

  •  요소에 대해서 Vue 가 어떤일을 하는지를 지정하는 명령어로 "v-" 가 붙어 이다. 
0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기
captcha
자동등록방지 숫자입력

웹개발

번호 제목 글쓴이 날짜 조회수
62 [Linux] CentOS postfix 메일서버 설치 및 설정(sendmail 설정) 최고관리자 12-23 1,490
61 [Ubuntu] 인터넷 연결이 안될 때 최고관리자 12-07 1,298
60 [Apache SSL] Ubuntu 인증서(전자서명) 최고관리자 11-24 1,409
59 [Ubuntu] ssl 임시 인증서 준비 및 발급받기 최고관리자 11-23 1,799
58 [Ubuntu] apache2 환경설정 생성기 최고관리자 11-23 3,014
57 [Ubuntu] apache2 설치 최고관리자 11-23 1,314
56 [vi 편집기] 단축키 최고관리자 11-23 1,243
55 [유용한 블로그] ^^.^^ 최고관리자 11-19 1,250
54 [JS] TimelineJS - 시간의 흐름을 네비게이션화 최고관리자 11-19 1,318
53 [JS] 스크롤을 감지하여 사이트의 헤더를 보이거나 숨기기 최고관리자 11-19 1,453
52 [Linux] NAS Mount 최고관리자 11-12 1,267
51 [React] React활용 최고관리자 11-10 1,306
50 [PHP] exec 실행에 대한 응답코드 최고관리자 11-02 1,656
49 [Linux] Shell Script 최고관리자 10-26 1,564
48 [폰트] 폰트 찾기 사이트 최고관리자 10-21 1,368
47 [통신] Socket packet test Program 최고관리자 10-20 1,851
46 [통신] 맥용 Socket Test Program 최고관리자 10-20 1,641
45 [통신] Mac에서 TCP Socket통신 테스트 하기 최고관리자 10-20 2,916
44 [NginX] 504 Gateway Time-out 에러와 해결방법 +1 최고관리자 10-16 24,613
43 [NginX] 설정 최고관리자 10-13 1,582