Front-End

[Vue.js] Vue 인스턴스 수명주기(Lifecycle Diagram) 테스트 해보기

뷰 인스턴스의 수명주기를 확인하기 위해 console.log()로 출력해 본 예제입니다. 아래 HTML 파일을 다운받은 후 크롬브라우저나 익스플로어에서 열면 확인할 수 있어요. 파일을 연 후 F12키를 눌러 개발자모드로 들어가면 확인이 가능해요.

 

다음은 라이프사이클 스니펫입니다.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Vue LifeCycle Sample</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.2/dist/vue.js"></script>
  </head>
  <body>
      <div id="logEx">
        {{msg}}
      </div>
      
      <script type="text/javascript">
        new Vue({
          el: '#logEx',
          data:{
            msg : 'Hello Vue.js!'
          },
          beforeCreate:function(){
            console.log("######## beforeCreate");
          },
          created:function(){
            console.log("######## created");
          },
          beforeMount:function(){
            console.log("######## beforeMount");
          },
          mounted:function(){
            console.log("######## mounted");
            //this.msg = "Complete mounted";
          },
          beforeUpdate:function(){
            console.log("######## beforeUpdate"); 
          }
          ,updated:function(){
            console.log("######## updated");
          }
          ,beforeDestory:function(){
          	console.log("######## beforeDestory");
          }          
          ,destoryed:function(){
          	console.log("######## destoryed");
          }
        });
      </script>
  </body>
</html>

 

[크롬 브라우저에서 html 불러온 결과]


라이플 사이클 순서를 보니 beforeCreate -> created -> beforeMount -> mounted 순으로 진행됩니다.

 

[라이프사이클 테스트 HTML 파일 첨부]

 

Vue 인스턴스 수명주기(Lifecycle Diagram)


source: https://vuejs.org/v2/guide/instance.html#Data-and-Methods

라이프사이클 훅

모든 라이프사이클 훅은 자동으로 this 컨텍스트가 인스턴스에 바인딩되어 있습니다.

그럼으로 data, computed 및 methods 속성에 접근할 수 있습니다.

절대로 화살표 함수를 사용해서 라이프사이클 메소드를 정의하면 안됩니다. (예: created: () => this.testMethod()).

그 이유는 화살표 함수가 부모 컨텍스트를 바인딩하기 때문입니다.

그럼으로 this는 Vue 컴포넌트 인스턴스가 아니며 this.testMethod()는 정의되지 않습니다(undefined).

라이프사이클 별 설명은 Vue.js 공식 문서를 참고하세요.

 

[REFERENCE]

 

The Vue Instance — Vue.js

Vue.js – The Progressive JavaScript Framework

vuejs.org

 

Leave a Reply

error: Content is protected !!