01. Vuex(๋ทฐ์์ค)
์ ํ๋ฆฌ์ผ์ด์
์ ์ํ ๊ด๋ฆฌ(state management)๋ฅผ ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์ํ๋?
- ํน์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ์ปดํฌ๋ํธ๊ฐ ๊ณต์ ํ๊ณ ์์ ๋, ๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ํ๋ผ๊ณ ํ๋ค.
์ํ ๊ด๋ฆฌ๊ฐ ํ์ํ ์ด์ ?
์ํ ๊ด๋ฆฌ
- ์ํ๋ฆฌ์ผ์ด์
์์ ์ฌ์ฉํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ค์์์ ๊ด๋ฆฌํ์ฌ ํฌ๊ธฐ๊ฐ ํฐ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐ์ดํ
๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ค.
vuex ์ ์ฒด ํ๋ฆ๋
02. Vue Reactivity(๋ทฐ์ ๋ฐ์์ฑ)
๋ทฐ๊ฐ ๋ฐ์ดํฐ ๋ณํ๋ฅผ ๊ฐ์งํ๊ณ ์๋์ผ๋ก ํ๋ฉด์ ๊ฐฑ์ ํ๋ ํน์ฑ
- ํ๋ ์์ํฌ ๋ด๋ถ์ ์ผ๋ก ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๋ฐฉ๋ฒ, ๊ฐ์ ๋์ด ๋์ํ๋ ๋ฐฉ๋ฒ, ํ๋ฉด์ ๋น ๋ฅด๊ฒ ๊ทธ๋ฆฌ๊ธฐ ์ํด ๋ธ๋ผ์ฐ์ ์ ๋ถํ๋ฅผ ์ฃผ์ง ์๊ณ ๋์ ์ถ๊ฐ,์ญ์ ํ๋ ๋ฐฉ๋ฒ์ ์ตํ ์ ์๋ค.
๋ทฐ์์ ์๋์ผ๋ก ํ๋ฉด์ ๊ฐฑ์ ํ๋ ์๋ฆฌ
-
getter, setter
- ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌํํ๋ ค๋ฉด ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ค.
- ์ธ์คํด์ค๊ฐ ์์ฑ๋ ๋, data์์ฑ์ ์ ์ ๋ ๊ฐ์ฒด๋ค์ ๋ณํ ์์
์ ๊ฑฐ์น๋ค.
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ data์ ์ ์๋ ๋ชจ๋ ์์ฑ(๊ฐ์ฒด)์ getter,setter ์ ํํ๋ก ๋ณํํ๋ค.
- getter์ setter๋ ์ฌ์ฉ์๊ฐ ์ ๊ทผํ ์ ์๋ ์์ฑ์ด ์๋๊ณ , ๋ทฐ ์ธ์คํด์ค์ ์ ์ํด ๋์ data ์์ฑ์ ๋ณํ๊ฐ ์๊ธธ ๋ ๋ทฐ์์ ๊ฐ์งํ๊ธฐ ์ํด ํ์ํ ๋ด๋ถ์ ์์ฑ์ด๋ค.
- getter์ setter๋ฅผ ๋ณํํ ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฅ API์ธ Object.defineProperty() ๊ฐ ์ฌ์ฉ๋๋ค.
-
watcher
- ๋ชจ๋ ์ปดํฌ๋ํธ์ ์กด์ฌํ๋ ์์ฑ, ํ๋ฉด์ ๋ค์ ๊ทธ๋ฆฌ๋๋ฐ ์ค์ํ ์ญํ ์ ํ๋ค.
- ์ธ์คํด์ค๊ฐ ํ๋ฉด์ ์ฌ๋ผ๊ฐ๊ณ ๋์ ํน์ data ์์ฑ์ ๋ฐ๊พธ๊ฑฐ๋ ์ ๊ทผํ๋ฉด watcher์์ ํด๋จ ์ฌ์ค์ ๊ฐ์ํ๊ณ ์ ํธ๋ฅผ ๋ณด๋ธ๋ค.
-
๋ทฐ์ ๋ฐ์์ฑ์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ์์ ์ ์๊ธด๋ค.
-
๋ฐ๋ผ์, ์ธ์คํด์ค๋ฅผ ์ ์ํ ๋ data ์์ฑ์ ์ ์ํ์ง ์๊ณ ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ data ์์ฑ์ ๊ฐ์ฒด๋ฅผ ์ถ๊ฐํ๋ฉด ๊ทธ ๊ฐ์ฒด์๋ ๋ฐ์์ฑ์ด ์๊ธฐ์ง ์๋๋ค.
-
๋ฐ์์ฑ์ด ์๋ค๋ ๊ฒ์ ํด๋น ๊ฐ์ฒด์ ๋ณํ๊ฐ ์๋ ์๋ ๋ทฐ์์ ํ๋ฉด์ ๋ค์ ๊ฐฑ์ ํ์ง ์๋๋ค๋ ์๋ฏธ์ด๋ค.
-
๋ทฐ ๋ฐ์์ฑ ๊ณต์ ๊ฐ์ด๋
์ฐธ๊ณ do it vue.js
์ ๋ดค์ต๋๋ค ^^