watch์™€ watchEffect

watch์™€ watchEffect

ย 
๐Ÿ’ก
์ด ๊ธ€์€ Vue3 Composition API๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. watchEffect()๋Š” Composition API์—์„œ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
ย 

watch์™€ watchEffect์˜ ์ฐจ์ด

ย 
  • watch : ํŠน์ • ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰, ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ์™€ ์ด์ „์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. (lazy)
  • watchEffect : ์˜์กด์„ฑ์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ ์ฆ‰๊ฐ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค. (immediately)
ย 

watch

  • ํŠน์ • ๋ฐ˜์‘ ์†์„ฑ์„ ๋ณด๊ณ  ์‹ถ๊ฑฐ๋‚˜, old value๋ฅผ ๋ณด๊ณ  ์‹ถ์„ ๋–„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ•จ์ˆ˜ ๋˜๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฐ˜์‘ ์†์„ฑ์„ ๊ฐ์‹œํ•œ๋‹ค.
  • reactive ์ข…์†์„ฑ์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งŒ ์‹คํ–‰๋œ๋‹ค.
ย 

watchEffect

ย 
  • watch์˜ ๋‹จ์ˆœํ™” ๋ฒ„์ „
  • ํ•จ์ˆ˜๋งŒ์„ ๊ฐ’์œผ๋กœ ๊ฐ€์ง„๋‹ค.
  • ์ •์˜๋˜๊ฑฐ๋‚˜ reactived์˜ ์ข…์†์„ฑ์ด ๋ณ€๊ฒฝ๋  ๋•Œ ์ฆ‰์‹œ ๋™์ž‘ํ•œ๋‹ค.
  • ์—ฌ๋Ÿฌ ๋ฐ˜์‘ ์†์„ฑ์„ ๊ฐ์‹œํ•˜๊ณ  ์‹ถ๊ณ , ์ด์ „ ๊ฐ’์— ์‹ ๊ฒฝ์„ ์“ฐ์ง€ ์•Š์„ ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
  • computed() hook ์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค.
  • ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ์žˆ๋Š” ์—ฌ๋Ÿฌ ๋ฐ˜์‘๊ฐ’์„ ๊ด€์ฐฐํ•ด์•ผ ํ•  ๋•Œ๋งˆ๋‹ค ์‚ฌ์šฉํ•˜๊ณ  ๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์—…๋ฐ์ดํŠธ ๋  ๋•Œ ๋งˆ๋‹ค ๋ฐ˜์‘ํ•œ๋‹ค.
ย 
์šฐ์„  ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ย watchEffect๋Š” ๋Œ€์ƒ์„ ์ง€์ •ํ•˜๋Š” ๋ถ€๋ถ„์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.
๊ทธ ์ด์œ ๋Š” effect๋ฅผ ์ง€์ •ํ•˜๋Š” ํ•จ์ˆ˜์—์„œ ์„ ์–ธ๋œ ๋Œ€์ƒ๋“ค์„ ๊ฐ์‹œํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด computed()์ฒ˜๋Ÿผย ์•ˆ์— ์‚ฌ์šฉ๋œ ๋Œ€์ƒ๋“ค์˜ ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜์—ฌ ์‹คํ–‰๋œ๋‹ค๋Š” ์ด์•ผ๊ธฐ๋‹ค.
๊ทธ๋ฆฌ๊ณ  watch์™€ ๋‹ค๋ฅด๊ฒŒย watchEffect๋Š” "์ฆ‰์‹œ" ์‹คํ–‰๋œ๋‹ค๋Š” ์ ์ด๋‹ค.