๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โญ Personal_Study/Vue

Lifecycle Hooks

by ํฌ์ŠคํŠธ์‰์ดํฌ 2022. 11. 14.

Lifecycle Hooks

๊ฐœ์š”

โœ” ๊ฐ Vue ์ธ์Šคํ„ด์Šค๋Š” ์ƒ์„ฑ๊ณผ ์†Œ๋ฉธ์˜ ๊ณผ์ • ์ค‘ ๋‹จ๊ณ„๋ณ„ ์ดˆ๊ธฐํ™” ๊ณผ์ •์„ ๊ฑฐ์นจ

  • Vue ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒฝ์šฐ, ์ธ์Šคํ„ด์Šค DOM์— ๋งˆ์šดํŠธํ•˜๋Š” ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด DOM์„ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๊ฒฝ์šฐ ๋“ฑ

โœ” ๊ฐ ๋‹จ๊ณ„๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ๋˜์–ด ํŠน์ • ๋กœ์ง์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ
โœ” ์ด๋ฅผ lifecycle hook์ด๋ผ ํ•œ๋‹ค

Lifecycle Hooks

created

โœ” Vue instance๊ฐ€ ์ƒ์„ฑ๋œ ํ›„ ํ˜ธ์ถœ๋จ
โœ” data, computed๋“ฑ์˜ ์„ค์ •์ด ์™„๋ฃŒ๋œ ์ƒํƒœ
โœ” ์„œ๋ฒ„์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ vue instance์˜ data์— ํ• ๋‹นํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๊ธฐ์— ์ ํ•ฉ
โœ” ๋‹จ, mount๋˜์ง€ ์•Š์•„ ์š”์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ

export default {
  ...
  created() {
    this.getDogImage()
  },
}

โœ” ๋ฒ„ํŠผ ๋ˆ„๋ฅด๊ธฐ ์ „์— ์ฒซ ์‹คํ–‰ ์‹œ ๊ธฐ๋ณธ ์‚ฌ์ง„ ์ถœ๋ ฅ

mounted

export default {
  ...
  mounted() {
    const button = document.querySelector('button')
    button.innerText ='๋ฉ๋ฉ!'
  }
}

โœ” Vue instance๊ฐ€ ์š”์†Œ์— mount๋œ ํ›„ ํ˜ธ์ถœ
โœ” mount๋œ ์š”์†Œ ์กฐ์ž‘ ๊ฐ€๋Šฅ

updated

export default {
  ...
  updated() {
    console.log('์ƒˆ๋กœ์šด ๋„๊ทธ')
  }
}

โœ” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด DOM์— ๋ณ€ํ™”๋ฅผ ์ค„ ๋•Œ ํ˜ธ์ถœ

Lifecycle Hooks์˜ ํŠน์ง•

โœ” Lifecycle Hooks๋Š” ์ปดํฌ๋„ŒํŠธ ๋ณ„๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Œ
โœ” ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์˜ mounted hook์ด ์‹คํ–‰๋˜์—ˆ๋‹ค๊ณ  ํ•ด์„œ ์ž์‹์ด mount ๋œ ๊ฒƒ์ด ์•„๋‹ˆ๊ณ , ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ updated hook์ด ์‹คํ–‰๋˜์—ˆ๋‹ค๊ณ  ํ•ด์„œ ์ž์‹์ด updated๋œ ๊ฒƒ๋„ ์•„๋‹ˆ๋‹ค

  • ๋ถ€์ฐฉ ์—ฌ๋ถ€๊ฐ€ ๋ถ€๋ชจ -์ž์‹ ๊ด€๊ณ„์— ๋”ฐ๋ผ ์ˆœ์„œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค!

โœ” instance๋งˆ๋‹ค ๊ฐ๊ฐ์˜ Lifecycle์„ ๊ฐ€์ง„๋‹ค

'โญ Personal_Study > Vue' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Todo: Local Storage  (0) 2022.11.16
Vuex ํ™œ์šฉํ•ด Todo SPA ์•ฑ ๋งŒ๋“ค๊ธฐ  (0) 2022.11.15
Vuex  (0) 2022.11.14
Emit Event  (0) 2022.11.13
Pass Props  (0) 2022.11.12

๋Œ“๊ธ€