๐ Vuex Intro.
|Vuex
- โStatement management pattern + Libraryโ for vue.js
- ์ํ ๊ด๋ฆฌ ํจํด + ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ์ํ(state)๋ฅผ ์ ์ญ ์ ์ฅ์๋ก ๊ด๋ฆฌํ ์ ์๋๋ก ์ง์ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ์ํ๊ฐ ์์ธก ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก๋ง ๋ณ๊ฒฝ๋ ์ ์๋๋ก ๋ณด์ฅํ๋ ๊ท์น ์ค์
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ์ปดํฌ๋ํธ์ ๋ํ ์ค์ ์ง์ค์ ์ ์ฅ์ ์ญํ
- Vue์ ๊ณต์ devtools์ ํตํฉ๋์ด ๊ธฐํ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ ๊ณต
|State
- state๋ ๊ณง data์ด๋ฉฐ ํด๋น ์ ํ๋ฆฌ์ผ์ด์ ์ ํต์ฌ์ด ๋๋ ์์
- ์ค์์์ ๊ด๋ฆฌํ๋ ๋ชจ๋ ์ํ ์ ๋ณด
|์ํ ๊ด๋ฆฌ ํจํด
- ์ปดํฌ๋ํธ์ ๊ณต์ ๋ ์ํ๋ฅผ ์ถ์ถํ๊ณ ์ด๋ฅผ ์ ์ญ์์ ๊ด๋ฆฌ ํ๋๋ก ํจ
- ์ปดํฌ๋ํธ๋ ์ปค๋ค๋ view๊ฐ ๋๋ฉฐ ๋ชจ๋ ์ปดํฌ๋ํธ๋ ํธ๋ฆฌ์ ์๊ด์์ด ์ํ์ ์ก์ธ์ค ํ๊ฑฐ๋ ๋์์ ํธ๋ฆฌ๊ฑฐ ํ ์ ์์
- ํธ๋ฆฌ๊ฑฐ
- ํน์ ํ ๋์์ ๋ฐ์ํด ์๋์ผ๋ก ํ์ํ ๋์์ ์คํํ๋ ๊ฒ
- ํธ๋ฆฌ๊ฑฐ
- ์ํ ๊ด๋ฆฌ ๋ฐ ํน์ ๊ท์น ์ ์ฉ๊ณผ ๊ด๋ จ๋ ๊ฐ๋ ์ ์ ์ํ๊ณ ๋ถ๋ฆฌํจ์ผ๋ก์จ ์ฝ๋์ ๊ตฌ์กฐ์ ์ ์ง ๊ด๋ฆฌ ๊ธฐ๋ฅ ํฅ์
|๊ธฐ์กด Pass props & Emit event

- ๊ฐ ์ปดํฌ๋ํธ๋ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌ
- ๋ฐ์ดํฐ๋ ๋จ๋ฐฉํฅ ํ๋ฆ์ผ๋ก ๋ถ๋ชจ โ ์์ ๊ฐ์ ์ ๋ฌ๋ง ๊ฐ๋ฅํ๋ฉฐ ๋ฐ๋์ ๊ฒฝ์ฐ ์ด๋ฒคํธ๋ฅผ ํธ๋ฆฌ๊ฑฐ
- ์ฅ์
- ๋ฐ์ดํฐ์ ํ๋ฆ์ ์ง๊ด์ ์ผ๋ก ํ์ ๊ฐ๋ฅ
- ๋จ์
- ์ปดํฌ๋ํธ ์ค์ฒฉ์ด ๊น์ด์ง๋ ๊ฒฝ์ฐ ๋์ ๊ด๊ณ์ ์ปดํฌ๋ํธ๋ก์ ๋ฐ์ดํฐ ์ ๋ฌ์ด ๋ถํธํด์ง
- ํ์ฌ๋ก ๋น์ ํ๋ฉด ๋๊ธฐ์๊ฒ ๋ญ ๋๊ฒจ์ฃผ๋ ค๋ฉด ์์ฌ์ ์ฌ์ฅ๋๊น์ง ๊ฑฐ์ณ ๋๊ธฐ์๊ฒ ๊ฐ๋ค๊ฐ ๋ค์ ๋ฐ์ ๋๋ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์ณ ๊ฐ์ผ ํจ..
- ๊ณตํต์ ์ํ๋ฅผ ๊ณต์ ํ๋ ์ฌ๋ฌ ์ปดํฌ๋ํธ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ ์ ๋ฌ ๊ตฌ์กฐ๊ฐ ๋งค์ฐ ๋ณต์กํด์ง
- ์๋ฅผ ๋ค๋ฉด, ์ง๋์น๊ฒ ์ค์ฒฉ๋ ์ปดํฌ๋ํธ๋ฅผ ํต๊ณผํ๋ prop

- ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ
- state๋ ์ฑ์ ์๋ํ๋ ์๋ณธ ์์ค (data)
- view๋ state์ ์ ์ธ์ ๋งคํ
- action์ view์์ ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ํด ๋ฐ์์ ์ผ๋ก state๋ฅผ ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ (methods)
|Vuex management pattern

- ์ค์ ์ ์ฅ์(store)์ state๋ฅผ ๋ชจ์๋๊ณ ๊ด๋ฆฌ
- ๊ท๋ชจ๊ฐ ํฐ (์ปดํฌ๋ํธ ์ค์ฒฉ์ด ๊น์) ํ๋ก์ ํธ์์ ๋งค์ฐ ํจ์จ์
- ๊ฐ ์ปดํฌ๋ํธ์์๋ ์ค์ ์ง์ค ์ ์ฅ์์ state๋ง ์ ๊ฒฝ ์ฐ๋ฉด ๋จ
- ๋์ผํ state๋ฅผ ๊ณต์ ํ๋ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ค๋ ๋๊ธฐํ ๋จ
|๋จ๋ฐฉํฅ ํ๋ฆ์ ์์กดํ state(์ํ) ๊ด๋ฆฌ
- ๋ถ๋ชจ ์์ ๊ฐ์ ์ปดํฌ๋ํธ ๊ด๊ณ๊ฐ ๋จ์ํ๊ฑฐ๋ depth๊ฐ ๊น์ง ์์ ๊ฒฝ์ฐ์๋ ๋ฌธ์ ๊ฐ ์์
- ๋ช ๋จ๊ณ๋ง ๊ฑฐ์น๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ด๋ ์ํฌ ์ ์์ผ๋ฉฐ ํจ์ฌ ์ง๊ด์ ์ผ๋ก ๋ฐ์ดํฐ ํ๋ฆ์ ํ์ ํ ์ ์์
- ํ์ง๋ง ๊ท๋ชจ๊ฐ ์ปค์ก์ ๊ฒฝ์ฐ์ ์ํ ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง
- ์ํ๋ฅผ ๊ณต์ ํ๋ ์ปดํฌ๋ํธ์ ์ํ ๋๊ธฐํ ๊ด๋ฆฌ๊ฐ ์ด๋ ค์
- ์ํ๋ฅผ ์ ๋ฌํ ๋ ์ โ ํ๋ก๋ง ๊ฐ๋ฅ
- A ์ปดํฌ๋ํธ์ ์ํ๋ฅผ ๊ณต์ ํ๋ ๋ค๋ฅธ ์ปดํฌ๋ํธ์ pass props & emit event ๋ฅผ ํตํด ๋๊ธฐํํด์ผ ํจ
|Vuex๋ฅผ ํ์ฉํ state(์ํ) ๊ด๋ฆฌ
- ์ํ์ ๋ณํ์ ๋ฐ๋ฅธ ์ฌ๋ฌ ํ๋ฆ์ ๋ชจ๋ ๊ด๋ฆฌํด์ผ ํ๋ ๋ถํธํจ์ ํด์ ํ ํ์๊ฐ ์์
- ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์ปดํฌ๋ํธ ์ฌ์ด์ ๊ด๊ณ๋ ์ถฉ๋ถํ ๊ณ ๋ คํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ํ ํ๋ฆ ๊ด๋ฆฌ๊ฐ ๋งค์ฐ ์ค์ํด์ง
- ๊ฒฐ๊ตญ ์ด๋ฌํ ์ํ๋ฅผ '์ฌ๋ฐ๋ฅด๊ฒ ๊ด๋ฆฌํ๋ ์ ์ฅ์'์ ํ์์ฑ์ ๋๋ผ๊ฒ ๋จ
- ์ํ๋ฅผ ํ ๊ณณ(store)์ ๋ชจ๋ ๋ชจ์ ๋๊ณ ๊ด๋ฆฌํ์
- ์ํ์ ๋ณํ๋ ๋ชจ๋ ์ปดํฌ๋ํธ์์ ๊ณต์
- ์ํ์ ๋ณํ๋ ์ค๋ก์ง Vuex๊ฐ ๊ด๋ฆฌํ์ฌ ํด๋น ์ํ๋ฅผ ๊ณต์ ํ๊ณ ์๋ ๋ชจ๋ ์ปดํฌ๋ํธ๋ ๋ณํ์ '๋ฐ์โ
- A ์ปดํฌ๋ํธ์ ๊ฐ์ ์ํ๋ฅผ ๊ณต์ ํ๋ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ ์ ๊ฒฝ ์ฐ์ง ์๊ณ , ์ค๋ก์ง ์ํ์ ๋ณํ๋ฅผ Vuex์ ์๋ฆผ
'Development > Vue.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Vue.js - Vuex Core Concepts (0) | 2022.05.13 |
---|---|
Vue.js - Vuex๋ฅผ ํ์ฉํ Todo App ๊ตฌํํ๊ธฐ (0) | 2022.05.11 |
Vue.js - Youtube API๋ฅผ ์ด์ฉํด props์ emit ํ์ฉํ๊ธฐ (0) | 2022.05.11 |
Vue.js - Vue Router (0) | 2022.05.09 |
Vue.js - Pass Props & Emit Events (0) | 2022.05.09 |
๋๊ธ