본문 바로가기
FRONT-END

[Vue.js] 인스턴스 & 라이프사이클

by 지에스정 2021. 3. 8.

 

Vue.js를 사용하기 위해 간단한 인스턴스를 만들고 라이프사이클에 대한 이해가 필요하다.

 

var vm = new Vue({
  el: '#app',
  data(){
    return {
      msg:'hello world!'
    }
  }
})

 

script 내부에 위와 같은 Vue 인스턴스를 만든다.

 

element를 app이라는 클래스로 지정해주고, data는 함수형태로 적어준다. (객체로 지정해줘도 된다)

 

<div class="app">
  <h1> {{ msg }}</h1>
</div>

그리고 템플릿 내부에서 app이라는 이름의 클래스를 div로 나타내고, scipt에서 정해준 데이터 내부 msg를 {{ }} 템플릿 문법을 이용하여

 

<h1> 내부에 {{ msg }} 로 적어준다. 

 

브라우저를 열어서 확인해보면 Hello world! 라고 찍히는 것을 확인할 수 있다.

 



라이프사이클

 

Vue.js에서 라이프사이클에 대한 설명을 하고자 한다.

 

beforeCreate는 인스턴스가 방금 초기화 된 후 데이터 관찰 및 이벤트 / 감시자 설정 전에 동기적으로 호출 된다.

 

created는 인스턴스가 작성된 후 동기적으로 호출하고,

 

인스턴스는 데이터 처리, 계산된 속성, 메서드, 감시/이벤트 콜백 등과 같은 옵션 처리를 완료한다.

 

마운트가 시작되기전 beforeMount가 호출되고, 인스턴스가 마운트 된 직후 mounted 호출한다.

 

beforeUpdate는 데이터가 변경되면, 가상 DOM 재 렌더링과 패치가 이뤄지기 전에 호출한다.

 

updated는 데이터가 변경되어 가상 DOM이 재 렌더링되고 패치되면 호출한다.

 

beforeDestroy 에서는 Vue 인스턴스가 제거되기 전에 호출되며, 인스턴스는 아직 완벽하게 작동하다.

 

destroyed는 Vue 인스턴스가 제거된 후 호출된다.

 

이 과정을 확인할 수 있도록 Vue 내부에 라이프사이클 훅이 존재해서

 

script 내부에서 아래 라이프사이클 훅을 이용하여 라이프사이클을 확인할 수 있다.

 

 beforeCreate(){
   console.log('beforCreate',this.msg)
 },
 created(){
   console.log('Created',this.msg)
 },
 beforeMount(){  
   console.log('beformount',this.$refs.div)
 },
 mounted(){
   console.log('mounted',this.$refs.div)
 },
 beforeUpdate(){
   console.log('beforUpdate',this.$refs.msg.innerText)
 },
 updated(){
   console.log('updated',this.$refs.msg.innerText)
 },
 beforeDestroy(){
   console.log('beforeDestroy')
 },
 destroyed(){
   console.log('destroyed')
 }

'FRONT-END' 카테고리의 다른 글

[AJAX] AJAX란?  (0) 2022.01.29
[FILEZILLA] 파일질라 사용 및 닷홈 업로드  (0) 2021.12.30
Vue.js 시작하기  (0) 2021.03.06
[React native / android]맥(Mac)에서 개발 환경 설정  (0) 2020.12.15
Redux-saga  (0) 2020.10.08