๐งฉ Vue.js ๋ผ์ดํ์ฌ์ดํด ์ ๋ฆฌ
Vue.js๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋ผ์ดํ์ฌ์ดํด์ ๋ํด ํ ๋ฒ์ฏค ๋ค์ด๋ดค์ ๊ฒ์ด๋ค.
ํ์ง๋ง ๋ง์ ํ๋ก์ ํธ๋ฅผ ํ๋ค ๋ณด๋ฉด ์ธ์ ์ด๋ค ํ
์ ์จ์ผ ํ ์ง ํท๊ฐ๋ฆฌ๊ธฐ ์ฝ๋ค.
์ด๋ฒ ํฌ์คํ
์์๋ Vue 3 ๊ธฐ์ค์ผ๋ก ๋ผ์ดํ์ฌ์ดํด์ ์ ๋ฆฌํ๊ณ ,
๊ฐ ํ
์ด ์ค์ ๋ก ์ธ์ ์ด๋ป๊ฒ ํธ์ถ๋๋์ง๋ฅผ ํ๋ฆ ์์ฃผ๋ก ํ์ด๋ดค๋ค.
๐ ๋ผ์ดํ์ฌ์ดํด ํ ์ด๋?
Vue ์ปดํฌ๋ํธ๋ ์์ฑ๋ถํฐ DOM์ ๋ถ์ฐฉ๋๊ณ , ๋ฐ์ดํฐ๊ฐ ๊ฐฑ์ ๋๋ฉฐ
๊ฒฐ๊ตญ ์๋ฉธ๋๊ธฐ๊น์ง์ ์ผ๋ จ์ โ์๋ช
์ฃผ๊ธฐโ๋ฅผ ๊ฑฐ์น๋ค.
์ด ํ๋ฆ ์ค๊ฐ์ค๊ฐ ๊ฐ์
ํ ์ ์๋ ์์ ์ด ์์ผ๋ฉฐ,
์ด๋ฅผ ๋ผ์ดํ์ฌ์ดํด ํ
(Lifecycle Hooks) ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๐ ๋ผ์ดํ์ฌ์ดํด ํ ์ ์ฒด ํ๋ฆ

beforeCreate โ created โ beforeMount โ mounted โ beforeUpdate โ updated โ beforeUnmount โ unmounted
๊ฐ ํ ์ ์ญํ ์ ํ๋์ฉ ์ ๋ฆฌํด๋ณด์.
๐งฑ ์์ฑ ๋จ๊ณ
1. beforeCreate()
-
์ปดํฌ๋ํธ ์ธ์คํด์ค๊ฐ ์ด๊ธฐํ๋๊ธฐ ์ง์ ํธ์ถ
-
data
,props
,methods
์ ์ ๊ทผ ๋ถ๊ฐ
ํํ ์ธ ์ผ์ ๊ฑฐ์ ์์ง๋ง, ๋๋ฒ๊น ์ฉ๋๋ก ์ ์ฉํ ๋๊ฐ ์๋ค.
2. created()
-
data
,props
,methods
๊ฐ ์ด๊ธฐํ๋ ํ ํธ์ถ -
API ํธ์ถ, ์ด๊ธฐ ๋ก์ง ์ค์ ์ ๋ง์ด ์ฌ์ฉ
created() {
this.fetchInitialData()
}
๐ผ ๋ง์ดํธ ๋จ๊ณ
3. beforeMount()
-
๊ฐ์ DOM์ด ์ค๋น๋์์ง๋ง, ์ค์ DOM์ ๋ถ์ฐฉ๋๊ธฐ ์ ํธ์ถ
-
DOM ์กฐ์์ ์์ง ๋ถ๊ฐ
4. mounted()
-
์ปดํฌ๋ํธ๊ฐ ์ค์ DOM์ ๋ ๋๋ง๋ ์ดํ ํธ์ถ
-
ref
, ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐ๋ ๋ฑ์ ํ์ฉ
mounted() {
this.initChart(this.$refs.chartContainer)
}
๐ ์ ๋ฐ์ดํธ ๋จ๊ณ
5. beforeUpdate()
-
๋ฐ์ํ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์ด DOM ์ ๋ฐ์ดํธ๊ฐ ์ผ์ด๋๊ธฐ ์ง์ ํธ์ถ
-
์ด์ ์ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฒ๋ฆฌํด์ผ ํ ๋ก์ง์ด ์์ ๋ ์ฌ์ฉ
6. updated()
-
DOM ์ ๋ฐ์ดํธ๊ฐ ์๋ฃ๋ ํ ํธ์ถ
-
UI ํ์ฒ๋ฆฌ ์์ , ์ ๋๋ฉ์ด์ ์ฒ๋ฆฌ ๋ฑ์ ์ ์ฉ
๐งน ์๋ฉธ ๋จ๊ณ
7. beforeUnmount()
-
์ปดํฌ๋ํธ๊ฐ DOM์์ ์ ๊ฑฐ๋๊ธฐ ์ง์ ํธ์ถ
-
ํ์ด๋จธ ์ ๋ฆฌ, ์ด๋ฒคํธ ํด์ ๋ฑ ์ ๋ฆฌ ์์
8. unmounted()
-
์ปดํฌ๋ํธ๊ฐ ์์ ํ ์๋ฉธ๋ ํ ํธ์ถ
-
์ ๋ฆฌ ํ์ธ์ฉ์ผ๋ก ์ฌ์ฉ
โ ๏ธ Composition API์์๋?
Vue 3์ <script setup>
๋๋ Composition API๋ฅผ ์ฌ์ฉํ๋ฉด onMounted
, onUpdated
๊ฐ์
ํ
ํจ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
<script setup>
import { onMounted } from 'vue'
onMounted(() => {
console.log('์ปดํฌ๋ํธ ๋ง์ดํธ ์๋ฃ!')
})
</script>
๐ก ์ค์ ์ฌ์ฉ ์์
-
API ํธ์ถ:
created
๋๋onMounted
-
์ฐจํธ, DOM ์กฐ์:
mounted
๋๋onMounted
-
ํ์ด๋จธ ํด์ :
beforeUnmount
-
์ธ๋ถ ๋ฆฌ์์ค ํด์ :
unmounted