Vuex
Vuex๋ Vue.js ์ดํ๋ฆฌ์ผ์ด์
์ ๋ํ ์ํ ๊ด๋ฆฌ ํจํด + ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์ํ, ๋ทฐ, ์ก์
new Vue({
// ์ํ
data () {
return {
count: 0
}
},
// ๋ทฐ
template: '<div>{{ count }}</div>',
// ์ก์
methods: {
increment () {
this.count ++
}
}
})
JavaScript
๋ณต์ฌ
โข
์ํ: ์ฑ์ ์๋ํ๋ ์๋ณธ ์์ค ( data )
โข
๋ทฐ: ์ํ์ ์ ์ธ์ ๋งคํ ( template )
โข
์ก์
: ์ฌ์ฉ์ ํ๋์ ๋ฐ์ํด ์ํ๋ฅผ ๋ณ๊ฒฝ ( methods )
Vuex
Vue.js ๋ ์ธ์คํด์ค ์์ฑ ์ ์ธ์๋ก ๋ฐ๋ data ๊ฐ์ฒด๋ฅผ ์ด์ฉํด์ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, data์์ ๋ด์ฉ์ด ๋ณ๊ฒฝ๋๋ฉด ์ด๋ฅผ ์ธ์งํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ์ปดํฌ๋ํธ๋ฅผ ์
๋ฐ์ดํธํ๋ค
๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด ์๋ก ๋ค๋ฅธ ์ปดํฌ๋ํธ๊ฐ ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ๋๋ฐ, ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด props ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ฑฐ๋ ์ด๋ฒคํธ๋ฅผ ํตํด data ๋ฅผ ๋๊ธฐํ ํ๋ ๋ฐฉ๋ฒ์ด ์๋ค
ํ์ง๋ง ์์ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ๋ฐ์ ํ๊ฒ ๋๋ฉด ์ดํ๋ฆฌ์ผ์ด์
์ด ์กฐ๊ธ๋ง ๋ณต์กํด์ง๋ฉด ๊ด๋ฆฌํ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ค์์ง๋ฉฐ, Vue.js ์ ์ฅ์ ์ธ ๋จ์จํจ์ด ๊ต์ฅํ ๋น ๋ฅด๊ฒ ์ ํ๋๋ค
Vuex ๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ์ญ์์ ์ ๊ทผ ๊ฐ๋ฅํ ์คํ ์ด ์ญํ์ ํ๊ณ ์์ผ๋ฉฐ, ์ ํด์ง ๊ท์น์ ๋ง์ถฐ ์ํ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค
Vuex๋ Flux, Redux, The Elm Architecture ์์ ์๊ฐ์ ์ป์ด ๊ฐ๋ฐ๋์๋ค
Vuex
Vuex๊ฐ ๋ฌด์กฐ๊ฑด ๋์ ํ๋๊ฒ ์ข์๊น?
Vuex ๋ ์ฌ๋ฌ ์ปดํฌ๋ํธ์์ ๊ณต์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ ๊ต์ฅํ ์ ์ฉํ์ง๋ง, ๋ฐฐ์ฐ๊ธฐ ์ํด ๋ฌ๋ ์ฝ์คํธ๊ฐ ๋ ๋ค.
๋ง์ฝ, ํ๋ก์ ํธ๊ฐ ๋จ๊ธฐ๊ฐ๋ด์ ๋๋ด์ผ๋๊ณ ์ดํ๋ฆฌ์ผ์ด์
๊ท๋ชจ๊ฐ ์๋ค๋ฉด Vuex ์์ด EventBus ๋ฅผ ์ฌ์ฉํด์ ๊ตฌํํ๋ฉด ๋๋ค. ํ์ง๋ง ์ดํ๋ฆฌ์ผ์ด์
์ด ์ค๊ท๋ชจ ์ด์์ผ ๊ฒฝ์ฐ Vuex ๋ ๋ฐ๋์ ๋์
ํ๋๊ฒ ์ข๋ค
์ฐธ๊ณ
โข
http://vuex.vuejs.org/kr/intro.html



