각 컴포넌트는 생성될 때 일련의 초기화 단계를 거칩니다. 예를들어 데이터 관찰, 템플릿 컴파일, 인스턴스를 DOM에 마운트, 데이터 변경 시 DOM을 업데이트해야합니다. 그 과정에서 라이프사이클 훅이라 불리우는 함수도 실행하여, 사용자가 특정 단계에서 자신의 코드를 추가할 수 있는 기회를 제공합니다.
인스턴스 라이프사이클에는 mounted, updated, unmounted 과 같은 다른 훅도 존재합니다. 모든 라이프사이클 훅에서는 Vue인스턴스를 가리키는 this 컨텍스트와 함께 호출됩니다.
무려 두번 날려먹음ㅠㅠ
VuecreateApp
이라는 method
를 통해 실행, mount
를 통해 html
에 연결events
& lifecycle
초기화beforeCreate
실행, 2과정 이후 바로 실행하고싶으면 이거 실행ex) 만약 count: 5 를 만들어놨으면
beforeCreate
에선 읽을 수 없음
4번 과정에서 초기화 하기 때문
created
lifecycle 실행여기서
count:5
해당 내용 확인 가능
Vue.js에서 component가 생성되기 직전과 생성된 직후를 구분하는게beforeCreate
,created
template
옵션을 사용하는 여부에 따라 YES와 NO로 나뉘어져서 처리과정을 거침beforeMount
mounted
mounted
에서의 lifecycle-hook은?beforeUpdate
라는 lifecycle-hook이 실행반응성이라는 개념과 밀접하게 연결되어있음
updated
로 연결
Mounted
의 lifecycle-hook은 자주 반복가능, 화면에 그려지기전이beforeUpdate
, 화면에 그려지면updated
unmount
하면 끊어진다.beforeUnmount
가 실행되고Unmounted
해서 실제로 끊어지면Unmounted
가 실행된다중요도 순서
1. created (사진 5번)
component
가 연결이 된 상태로 가장 빠르게 만날 수 있는life cycle hook
2. mounted (사진 8번)
실제로 화면이 렌더링(그려진)이 된 직후에 만날 수 있는
life cycle hook
<template>
<h1>{{ count }}</h1>
</template>
<script>
export default {
data() {
return {
count: 2
}
},
// 활동도가 낮다
beforeCreate() {
console.log('before create!', this.count)
},
// 가장 많이 사용
created() {
console.log('created!', this.count)
},
// 활동도가 낮다
beforeMount() {
console.log('before mount!')
console.log(document.querySelector('h1'))
},
// 많이 사용
mounted() {
console.log('mounted!')
console.log(document.querySelector('h1'))
}
}
</script>
<style>
</style>
위에 내용을 직접 쳐보면서 console창에 어떻게 보이는지 해보면 좋을거 같다 👌