본문 바로가기
카테고리 없음

Vue.js의 특징 및 뷰 인스턴스

by 제이엠_ 2022. 5. 10.

Vue의 장점

  • 배우기가 쉽다. (리액트는 ES6, JSX를 앵귤러는 타입스크립트, ES6 등 더 많은 학습 필요)
  • 리액트와 앵귤러에 비해 성능이 우수하고 빠르다. 
  • 리액트의 장점(가상 돔 기반 렌더링 특징)과 앵귤러의 장점(데이터 바인딩 특성)을 가지고 있다.

 

Vue의 특징

MVVM 패턴 : 모델 - 뷰 - 뷰 모델로 구조화하여 개발하는 방식

 

  • View : 사용자에게 보이는 화면
  • DOM : HTML 문서에 들어가는 요소(태그, 클래스, 속성 등)의 정보를 담고 있는 데이터 틜
  • DOM Listener : 돔의 변경 내역에 대해 즉각적으로 반응하여 특정 로직을 수행하는 장치
  • Model : 데이터를 담는 용기, 보통은 서버에서 가져온 데이터를 자바스크립트 객체 형태로 저장
  • Data Binding : View에 표시되는 내용과 모델의 데이터를 동기화
  • View Model : 뷰와 모델 중간 영역. 돔 리스너와  데이터 바인딩을 제공하는 영역

 

뷰 인스턴스

Vue instance : 뷰 인스턴스는 뷰로 화면을 개발하기 위해 필수적으로 생성해야 하는 기본 단위

new Vue({
	el : '#app'
    data: {
    	message : 'Hello Vue.js!'
    }
})
<div id="app">
	{{message}}
</div>

 

el의 #app은 html 태그에서 id랑 연결 지어서 data에 dlTsms message에 데이터를 화면에 보여준다. # 선택자는 CSS 선택자 규칙과 같다.

 

  • template : 화면에 표시할 HTML, CSS 등의 마크업 요소를 정의하는 속성. 뷰의 데이터 및 기타 속성들도 함께 화면에 그릴 수 있다.
  • methods : 화면 로직 제어와 관계된 메서드를 정의하는 속성. 마우스 클릭 이벤트 처리와 같이 화면의 전반적인 이벤트와 화면 동작과 관련된 로직을 추가할 수 있다.
  • created : 뷰 인스턴스가 생성되자마자 실행할 로직을 정의할 수 있는 속성. 라이프 사이클 부분.

 

뷰 인스턴스의 유효 범위

뷰 인스턴스의 유효범위 : 뷰 인스턴스를 생성하면 HTML의 특정 범위 안에서만 옵션 속성들이 적용되어 나타남.

 

인스턴스가 화면에 적용되는 과정

  1. 뷰 라이브러리 파일로딩
  2. 인스턴스 객체 생성(옵션 속성 포함)
  3. 특정 화면 요소에 인스턴스를 붙임
  4. 인스턴스 내용이 화면 요소로 변환
  5. 변환된 화면 요소를 사용자가 최종 확인

 

출처 : https://joshua1988.github.io/vue-camp/

beforeCreate : 인스턴스가 생성되고 나서 가장 처음으로 실행되는 라이프 사이클 단계, data 속성과 methods 속성이 아직 인스턴스에 정의되지 않고, 돔과 같은 화면 요소에 접근할 수 없음.

 

created : beforeCreate 라이프 사이클 단계 다음에 실행되는 단계. data, methods 속성이 정의되어 this.data 또는 this.fetchData() 로직들을 이용할 수 있음. template 속성에 정의된 돔 요소로 접근은 할 수 없음. data, methods 속성에 접근할 수 있는 단계로 서버에 데이터를 요청하여 받아오는 로직 수행하기 좋음.

 

beforeMount : created 단계 이후 template 속성에 지정한 마크업 속성을 render() 함수로 변환한 후 el 속성에 지정한 화면 요소(돔)에 인스턴스를 부착하기 전 호출되는 단계.

render()는 자바스크립트로 화면의 돔 그리는 함수

 

mounted : el 속성에서 지정한 화면 요소에 인스턴스가 부착되고 나면 호출되는 단계, template 속성에 정의한 화면 요소에 접근할 수 있어 화면 요소 제어하는 로직 수행하기 좋음. 

 

beforeUpdate : el 속성에서 지정한 화면 요소에 인스턴스가 부착되고 나면 인스턴스에 정의한 속성들이 치환. 관찰하고 있는 데이터가 변경되면 가상 돔으로 화면을 다시 그리기 전에 호출되는 단계, 변경 예정인 새 데이터에 접근할 수 있어 변경 예정 데이터의 값과 관련된 로직을 미리 넣을 수 있음.

 

updated : 데이터가 변경되고 나서 가상 돔으로 다시 화면을 그리고 나면 실행되는 단계입니다. 데이터 변경으로 인한 화면 요소 변경까지 완료된 시점으로 데이터 변경 후 화면 요소 제어와 관련된 로직을 추가하기 좋은 단계.

 

beforeDestroy : 뷰 인스턴스가 파괴되기 직전에 호출되는 단계. 인스턴스에 접근할 수 있어 데이터를 삭제하기 좋은 단계

 

destroyed : 뷰 인스턴스가 파괴되고 나서 호출되는 단계. 이 단계에서는 data 속성과 methods 속성이 아직 인스턴스에 정의되어 있지 않고, 돔과 같은 화면 요소에도 접근 불가.

 

공부 회고

강의를 들었지만 글로 보는 건 또 다르기에 Do it! Vue.js 입문 책을 구매했다. 입문자는 7일 완성이라는 말에 혹해.. 당장 내일부터 뷰를 다뤄야하는 상황이 올 수 있어서 1일차라도 공부했다. Vue의 장점, 특징(VMMV), 뷰 인스턴스, 뷰 인스턴스의 라이프사이클을 알게 되었는데 아직 어색한 것들이 많다. 하지만 라이프사이클에 있어서 상당히 세부적으로 쪼개져 있음에 디테일이 있구나란 생각이 들었다. 그리고 더더욱 자바스크립트라는 기본기를 더 키워야겠다는 생각이 들었다. 내일부터 개발자로 첫 시작이 예정되어 있는데 슬기로운 신입 개발자 생활? 할 수 있다! 

댓글