[Vue.js 알아보기] #3 - instance/ 라이프 사이클

Sonny·2021년 4월 11일
0

Vue.js

목록 보기
3/4
post-thumbnail

Instance (인스턴스)

인스턴스 정의 🧐

  • Vue.js로 화면을 개발하기 위해 필수적으로 생성해야 하는 기본 단위

인스턴스 형식 (문법) 📗

const vm = new Vue({
    el: '#app',
    data: {
        msg: 'Hello, Vue!'
    },
    ...
})
  • el 속성 : Vue로 만든 화면이 그려지는 시작점
    (Vue 인스턴스로 화면을 렌더링할 때 화면이 그려질 위치의 DOM 요소를 반드시 지정해야 함)

인스턴스 생성자 🦾

  • Vue로 개발할 때 필요한 기능들을 생성자에 미리 정의해놓고 사용자가 그 기능을 재정의하여 편리하게 사용할 수 있게 생성자를 사용

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

  1. Vue 라이브러리 파일 로딩
  2. 인스턴스 객체 생성
  3. 특정 화면 요소에 인스턴스 부착
  4. 인스턴스 내용이 화면 요소로 변환
  5. 변환된 화면 요소를 사용자가 최종 확인

인스턴스 라이프 사이클 🌎

라이프 사이클 : 인스턴스의 상태에 따라 호출할 수 있는 속성

beforeCreate

  • 인스턴스가 생성되고(이벤트 및 라이프 사이클 초기화 후) 가장 처음으로 실행되는 라이프 사이클
  • data 속성, methods 속성 정의되지 않음 → data, methods 속성에 접근 불가
  • DOM과 같은 화면 요소에 접근 불가

created

  • data 속성과 methods 속성에 접근할 수 있는 가장 첫 라이프 사이클 단계
    ( 화면에 반응성 주입 된 다음 실행 )
  • DOM과 같은 화면 요소에 접근 불가 (인스턴스가 화면 요소에 부착 전)
  • 서버에서 데이터를 요청해서 받아오는 로직을 수행하기 좋음

beforeMount

  • created 단계 이후 template 속성에 지정한 마크업 속성을 render() 함수로 변환하여 el 속성에 지정한 DOM에 인스턴스를 부착하기 전 호출되는 단계
  • render() 함수가 호출되기 직전의 로직을 추가하기 좋음

mounted

  • el 속성에서 지정한 화면 요소에 인스턴스가 부착되고 나면 호출되는 단계 (인스턴스에 정의한 속성들이 화면에 치환)
  • template 속성에 정의한 DOM에 접근할 수 있음
  • 화면 요소를 제어하는 로직을 수행하기 좋은 단계

beforeUpdate

  • 관찰하고 있는 데이터가 변경돼서 가상 DOM으로 화면을 다시 그리기 전에 호출되는 단계로 데이터 변경 시에만 동작
  • 변경 예정인 새 데이터에 접근 가능, 변경 예정 데이터의 값과 관련된 로직을 미리 넣을 수 있음
  • 데이터 값을 갱신하는 로직을 추가하기 좋은 단계

updated

  • 데이터가 변경되고 나서 가상 DOM으로 다시 화면을 그리고 나면 실행되는 단계
  • 변경 데이터의 DOM과 관련된 로직을 추가하는 것이 좋음
    ( 이 단계에서 데이터 변경 시, 무한 루프 우려 → computed, watch와 같은 속성 사용 )

beforeDestroy

  • Vue 인스턴스가 파괴되기 직전에 호출되는 단계
  • 인스턴스에 접근 가능, Vue 인스턴스의 데이터를 삭제하기 좋은 단계

destroyed

  • Vue 인스턴스가 파괴되고 나서 호출되는 단계
  • 인스턴스에 정의한 모든 속성 제거, 하위에 선언한 인스턴스들 또한 모두 파괴

출처 📝

위의 내용은 Vue.js를 공부하며 개인적으로 정리한 내용입니다.
본문에 관련된 문제 사항이 있는 경우, 댓글로 남겨주시면 감사하겠습니다! 🙌

profile
FrontEnd Developer

0개의 댓글