Vuex - ChoDragon9/posts GitHub Wiki


title: Vuex sidebar: auto

์†Œ๊ฐœ

Vuex๋Š” Vue ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ ๊ด€๋ฆฌ ์•„ํ‚คํ…์ณ๋ฅผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ œ๊ณตํ•œ ๊ฒƒ์ด๋‹ค. Flux, Redux, Elm ์•„ํ‚คํ…์ฒ˜์—์„œ ์˜๊ฐ์„ ๋ฐ›์•„ Vue์˜ ๋ฐ˜์‘ํ˜• ์‹œ์Šคํ…œ์„ ํ™œ์šฉํ•˜๋„๋ก ํŠน๋ณ„ํžˆ ๊ณ ์•ˆ๋œ ์•„ํ‚คํ…์ณ์ด๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ์ค‘์•™ ์ง‘์ค‘์‹ ์ €์žฅ์†Œ ์—ญํ• ์„ ํ•˜๋ฉฐ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์œผ๋กœ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

Vuex๋Š” Store๋ผ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. Store๋Š” State, Getters, Mutations, Actions, Modules๋กœ ์ด๋ฃจ์–ด ์ง„๋‹ค.

State๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๊ณ , Getters๋Š” State์˜ ๊ณ„์‚ฐ๋œ ์†์„ฑ์ด๋‹ค. Mutations์€ State์˜ ๋ณ€๊ฒฝ์„ ์œ„ํ•œ ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด๊ณ  Actions๋Š” ๋น„๋™๊ธฐ ์ž‘์—…์„ ํ•œ๋‹ค. Actions์€ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด Mutations์—๊ฒŒ ์ „ํŒŒํ•œ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ Modules๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ ๋•Œ State, Getters, Mutations, Actions๋ฅผ ๋ถ„ํ• ํ•˜์—ฌ ์„ ์–ธํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

State

State๋Š” ์ƒํƒœ๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค. Vuex๋Š” ๋‹จ์ผ ์ƒํƒœ ํŠธ๋ฆฌ๋ฅผ ๊ฐ€์ง„๋‹ค. ๋‹จ์ผ ๊ฐ์ฒด๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ชจ๋“  ์ƒํƒœ๋ฅผ ํฌํ•จํ•˜๋ฉฐ ์›๋ณธ ์†Œ์Šค์˜ ์—ญํ• ์„ ํ•œ๋‹ค. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๋งˆ๋‹ค ํ•˜๋‚˜์˜ ์ €์žฅ์†Œ๋งŒ ๊ฐ–๊ฒŒ ๋œ๋‹ค. Vuex๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๋ชจ๋“  ์ƒํƒœ๋ฅผ Vuex์— ๋„ฃ์–ด์•ผ ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋‹จ์ผ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ๋งŒ ์†ํ•˜๋Š” ์ƒํƒœ์˜ ๊ฒฝ์šฐ ์ปดํฌ๋„ŒํŠธ์— ๋‚จ๊ฒจ ๋‘˜ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ธฐํšŒ๋น„์šฉ์„ ํŒ๋‹จํ•˜๊ณ  ์•Œ๋งž๋Š” ์œ„์น˜์— ์ •์˜ํ•ด์•ผ ํ•œ๋‹ค.

Getters

Getters๋Š” State๋ฅผ ๊ธฐ๋ฐ˜ํ•˜์—ฌ ๊ณ„์‚ฐ๋œ ์ƒํƒœ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. Getters์˜ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋Š” ์ข…์†์„ฑ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ์ด ์—†์„ ๊ฒฝ์šฐ ์บ์‹œ๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ผ๋ถ€์˜ ์ข…์†์„ฑ์ด ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ์—๋งŒ ๋‹ค์‹œ ๊ณ„์‚ฐ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ˜ํ™˜๊ฐ’์ด ํ•จ์ˆ˜์ผ ๊ฒฝ์šฐ ์บ์‹œ๊ฐ€ ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์œ ์˜ํ•ด์•ผ ํ•œ๋‹ค.

Mutations

Mutations์€ State๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. Mutations์€ ์ด๋ฒคํŠธ์™€ ์œ ์‚ฌํ•˜๋‹ค. ๊ฐ Mutations์€ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๊ฐ€ ์žˆ๊ณ  ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜์—์„œ ์‹ค์ œ ์ƒํƒœ๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ƒํƒœ ๋ณ€๊ฒฝ์€ ๋น„๋™๊ธฐ๋กœ ๋ณ€๊ฒฝ์ด ๋  ๊ฒฝ์šฐ ์ถ”์ ํ•˜๊ธฐ ํž˜๋“ค๊ธฐ ๋•Œ๋ฌธ์— Mutations์€ ๋™๊ธฐ์ ์œผ๋กœ ๋™์ž‘๋˜์•ผ ํ•œ๋‹ค. ๋น„๋™๊ธฐ ์ž‘์—…์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ Actions์„ ํ†ตํ•ด ํ˜ธ์ถœ๋˜๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค.

Actions

Actions์€ ๋น„๋™๊ธฐ ์ž‘์—…๊ณผ Mutations์—๊ฒŒ ์ƒํƒœ ๋ณ€๊ฒฝ ์š”์ฒญ์„ ํ•œ๋‹ค. ๋น„๋™๊ธฐ ์ž‘์—…์˜ ํ๋ฆ„ ์ œ์–ด์™€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ƒํƒœ ๋ณ€๊ฒฝ์„ ์š”์ฒญํ•˜๋Š” ์ž‘์—…์„ Actions์—์„œ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•œ Action์— ๋‹ค๋ฅธ Action์„ ํฌํ•จํ•˜์—ฌ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ƒํƒœ๋ณ€๊ฒฝ ์ž‘์—…์™€ ๋น„๋™๊ธฐ ์ž‘์—…์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

Modules

Modules๋Š” ์ €์žฅ์†Œ๋ฅผ ๋ชจ๋“ˆ๋กœ ๋‚˜๋ˆ„๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ๊ฐ ๋ชจ๋“ˆ์€ ์ž์ฒด์ ์œผ๋กœ State, Mutations, Actions, Getters์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋‚ด๋ถ€์ ์œผ๋กœ ๋˜ ๋ชจ๋“ˆ์„ ๊ฐ€์‹ค ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“ˆ ๋‚ด์˜ ๊ฐ ์š”์†Œ๋“ค์„ ๋“ฑ๋กํ•˜๋”๋ผ๋„ ์ „์—ญ์— ๋“ฑ๋ก์ด ๋œ๋‹ค. ๋…๋ฆฝ์ ์œผ๋กœ ๋™์ž‘์„ ํ•˜๋ ค๋ฉด ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์„ค์ •์„ ํ†ตํ•ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ฐธ๊ณ ๋ฌธํ—Œ

https://vuex.vuejs.org/kr/