ย
์ด ๊ธ์ 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๋ "์ฆ์" ์คํ๋๋ค๋ ์ ์ด๋ค.