[Vue] 인스턴스

2020. 1. 29. 17:21·Vue
참고 : Vue.js 입문책을 읽고 학습한 내용을 블로그에 정리한 글이므로 내용상 오류가 있을 수 있습니다. 
        오류가 있다면 댓글 남겨주시면 감사하겠습니다.

Vue 인스턴스

  • Vue로 화면을 개발하기 위해 필수적으로 생성해야 하는 기본 단위
  • 데이터 바인딩, 컴포넌트, 템플릿 렌더링 등 여러가지를 동작을 수행

Vue 인스턴스 형식

new Vue({

  ...

});

new Vue()로 인스턴스를 생성할 때 Vue를 생성자라고 합니다.

생성자를 사용하는 이유는 미리 생성자에 필요한 기능들을 정의 해서

사용자가 ... 부분에 인스턴스 속성들을 사용하여 화면을 개발할 수 있게합니다.

Vue 인스턴스 속성

el el속성 안에 있는 값과 html 또는 css의 아이디를 연결하는 역할
data data의 값을 html부분의 {{ }}으로 접근하여 렌더링합니다
template HTML, CSS 등의 속성과 뷰 인스턴스에서 정의한 데이터 및 로직들을 브라우저에서 볼 수 있는 형태의 HTML로 변환해 주는 속성
methods 화면 동작과 관련된 로직을 정의하는 속성  ex) 마우스 클릭 이벤트
created 뷰 인스턴스가 생성되고 실행할 로직을 정의할 수 있는 속성

Vue 인스턴스 속성 적용 과정

1. 뷰 라이브러리 파일 로딩

2. 인스턴스 객체 생성(속성 포함)

3. div태그의 id에 인스턴스 el 속성을 붙입니다.

4. 인스턴스 data속성의 text값 'Hi vue'가 div태그안의 {{text}}로 치환됩니다.

5. 치환된 내용{{text}}값을 화면에서 갱신합니다.

뷰 인스턴스 라이프 사이클

라이프 사이클(life cycle) : 인스턴스의 상태에 맞게 호출할 수 있는 속성

라이프 사이클 4단계

인스턴스 생성 -> 인스턴스를 화면에 부착 -> 부착된 인스턴스의 내용 갱신 -> 인스턴스 소멸

(부착 -> 갱신 구간은 데이터가 변경된 경우에만 실행됩니다.)

 

라이프 사이클 세부 내용

(인스턴스 생성)

1. 이벤트 및 라이프 사이클 초기화

2. beforeCreate : data 속성과 methods속성이 아직 인스턴스에 정의 되지 않아서 화면 요소에 접근 불가능한 단계

3. 화면에 반응성 주입

4. created

  • data속성과 methods속성이 정의되어서 정의된 값에 접근하여 로직을 실행할 수 있습니다
  • 인스턴스가 화면에 부착되기 전이기 때문에 template속성에 정의된 돔 요소로 접근 불가능합니다.
  • 컴포넌트가 생성되고 나서 실행되는 단계이기 때문에 서버에 데이터를 요청하여 받아오는 로직을 수행합니다

5. el, template속성 확인

6. template 속성 내용을 render()로 변환

7. beforeMount : 5,6 내용을 화면에 부착하기 전이라서 render()함수가 호출되기 직전의 로직을 추가하면 좋습니다. 

8. $el 생성 후 el속성 값을 대입

 

(인스턴스를 화면에 부착)

9. mounted

  • el 속성에서 지정한 화면 요소에 인스턴스가 부착된 이후에 호출되는 단계
  • template속성의 내용을 화면 요소에 접근할 수 있어서 화면 요소를 제어하는 로직을 수행하기 좋은 단계
  • 화면에 인스턴스가 부착되자마자 호출되기 때문에 하위 컴포넌트나 외부 라이브러리에 의해 추가된 화면 요소들이 최종 html코드로 변환되는 시점과 다를 수 있습니다.

(데이터가 변경되는 경우에만)

10. 인스턴스의 데이터 변경

11. beforeUpdate

  • 관찰하고 있는 데이터가 바뀌면 가상 돔으로 화면을 다시 그리기 전에 호출되는 단계
  • 변경 예정인 새 데이터에 접근하여 관련된 로직을 미리 넣을 수 있습니다.
  • 값을 변경하는 로직을 넣어도 화면은 갱신되지 않습니다.

12. 화면 재 렌더링 및 데이터 갱신

13. updated

  • 데이터가 변경된 후 가상 돔으로 다시 화면을 갱신하면 실행되는 단계
  • 데이터 변경으로 인한 화면 요소 변경까지 완료된 시점
  • 데이터 변경 후 화면 요소 제어와 관련된 로직을 추가하기 좋은 단계

(인스턴스 내용 갱신)

14. 인스턴스 접근 가능

15. beforeDestroy : 인스턴스 접근 가능하여 데이터를 삭제하기 좋은 단계

16. 컴포넌트, 인스턴스 디렉티브 등 모두 해제

17. destroyed : 뷰 인스턴스에 정의한 모든 속성이 제거되고 하위에 선언한 인스턴스들도 파괴

 

(인스턴스 소멸)

 

 

 

 

 

'Vue' 카테고리의 다른 글

[Vue] HTTP 통신  (0) 2020.02.13
[Vue] 라우터(기초)  (0) 2020.01.31
[Vue] 컴포넌트  (0) 2020.01.30
[Vue] 개발 환경 설정(Window)  (0) 2020.01.27
Vue란??  (0) 2020.01.27
'Vue' 카테고리의 다른 글
  • [Vue] 라우터(기초)
  • [Vue] 컴포넌트
  • [Vue] 개발 환경 설정(Window)
  • Vue란??
꾸준2
꾸준2
  • 꾸준2
    꾸준2
    꾸준2
  • 전체
    오늘
    어제
    • 분류 전체보기 (157)
      • 복습 프로젝트 (3)
      • 어드민 프로젝트 (4)
      • 프로젝트 리팩토링 (4)
      • Database (0)
      • Java Library (2)
      • Java (4)
      • Java(JVM) (1)
      • 자바 문제 (13)
        • 이론 (6)
        • 실습 (7)
      • IDE (2)
        • IntelliJ (2)
      • 인강 (13)
        • SpringBoot(JPA활용1) (0)
        • 자바(기본편) (6)
        • 자바(중급1편) (3)
        • 자바(중급2편) (1)
        • 자바 ORM 표준 JPA 프로그래밍 - 기본편 (3)
      • Network (2)
      • Node (3)
      • CS (0)
      • amCharts4 (5)
      • 오류 모음 (4)
        • 리눅스 (1)
      • 기타지식 (2)
      • 자주 사용하는 기능 (4)
      • Vue (11)
      • Javascript (13)
      • Javascript-메서드 (3)
      • CSS (6)
      • 라이브러리 (4)
      • 자료구조 (11)
      • 알고리즘 (4)
      • Vue-프로젝트 (20)
      • Vue-bitcoin프로젝트 (6)
      • 블로그클론 프로젝트 (11)
      • 면접 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
꾸준2
[Vue] 인스턴스
상단으로

티스토리툴바