[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 Sample.html
0.00MB
Vue 인스턴스 수명주기(Lifecycle Diagram)
라이프사이클 훅
모든 라이프사이클 훅은 자동으로 this 컨텍스트가 인스턴스에 바인딩되어 있습니다.
그럼으로 data, computed 및 methods 속성에 접근할 수 있습니다.
절대로 화살표 함수를 사용해서 라이프사이클 메소드를 정의하면 안됩니다. (예: created: () => this.testMethod()).
그 이유는 화살표 함수가 부모 컨텍스트를 바인딩하기 때문입니다.
그럼으로 this는 Vue 컴포넌트 인스턴스가 아니며 this.testMethod()는 정의되지 않습니다(undefined).
라이프사이클 별 설명은 Vue.js 공식 문서를 참고하세요.
[REFERENCE]