- Create
- Mount
- Update
- Destory
data와 이벤트 , 감시자등이 설정되기 전에 호출되는 라이프 사이클 훅
data, computed, methods, watch 등과 같은 옵션 설정이 완료된 시점이기 때문에, data 등을 사용할 수 있다.
컴포넌트가 DOM에 추가 되기 직전에 실행되는 훅
컴포넌트가 DOM에 추가 된 후 호출되는 라이프 사이클 훅
DOM이 재 렌더링 되기 직전에 호출되는 라이프 사이클 훅
DOM이 재 렌더링 된 후 호출되는 라이프 사이클 훅
<body>
<div id="app">
<h1>{{msg}}</h1>
</div>
<script>
//App 변수를 통해 넣는다
const App = {
data(){
return {
msg : 'Hello Vue!'
}
},
//view application이 만들어지기 직전에
beforeCreate(){
//this를 통해 data를 다룰 수 없다.
//app을 생성하기 직전이라 this를 통해 msg에 접근 할 수 없다.
//활용할 일이 거의 없다. (데이터 접근 X , 할 수 있는 일이 제한적)
console.log('beforeCreate',this.msg)
console.log(document.querySelector('h1'))
},
//view application이 만들어지기 직후
created(){
console.log('Created',this.msg)
console.log(document.querySelector('h1'))
},
//view application이 html 구조와 연결 되기 직전
beforeMount(){
console.log('beforeMount',this.msg)
console.log(document.querySelector('h1'))
},
//view application이 html 구조와 연결 되기 직후
// html 구조가 연결된 직후에만 querySelector 사용가능
mounted(){
console.log('mounted',this.msg)
console.log(document.querySelector('h1'))
}
}
//application 객체
const app = Vue.createApp(App)
// 어떤요소에다가 mount 할 것인가
// 고유한 id에 하는 것을 추천 class말고
// viewModel은 app을 통해 반환된 인스턴스이다.
// 인스턴스의 속성과 메소드를 통해 다양한 것을 사용할 수 있다.
const vm = app.mount('#app')
</script>
</body>
<body>
<div id="app">
<h1>{{msg}}</h1>
</div>
<script>
//App 변수를 통해 넣는다
const App = {
data(){
return {
msg : 'Hello Vue!'
}
},
beforeUpdate(){
console.log('beforeUpdate',this.msg)
console.log(document.querySelector('h1').textContent)
},
updated(){
console.log('updated',this.msg)
console.log(document.querySelector('h1').textContent)
}
}
//application 객체
const app = Vue.createApp(App)
// 어떤요소에다가 mount 할 것인가
// 고유한 id에 하는 것을 추천 class말고
// viewModel은 app을 통해 반환된 인스턴스이다.
// 인스턴스의 속성과 메소드를 통해 다양한 것을 사용할 수 있다.
const vm = app.mount('#app')
</script>
beforeUpdate와 updated의
this.msg
의 결과는 같은데
이는 beforeUpdate의 업데이트의 대상은
데이터 update 되기전이 아니라 화면이 update 되기전이다.
데이터 update -> this.msg
화면 update -> document.querySelector('h1').textContent