Vuex๋ฅผ ํ์ฉํ์ฌ TodoList๋ฅผ ๋ง๋ค๊ธฐ ์ํด
vuex
์ ๋ํ ๊ฐ๋ ๋ถํฐ ์์๋ด ์๋ค
์ปดํฌ๋ํธ ๋ ์ด์์
Vue.js ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ
์ํ๊ด๋ฆฌ ํจํด
๋ผ์ด๋ธ๋ฌ๋ฆฌ
Vue.js์์ ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ๊ธฐ๋ณธ ์ปจ์ ์ ๋ถ๋ชจ์๊ฒ ์์์ผ๋ก ํ๋ฅด๋
๋จ๋ฐฉํฅ
์ ๋๋ค. ์์ ๊ณต๋ถํ์ด์.
โก ๊ฐ๋จํ๊ฒ ์ ์ญ์์ ์ด๋ฌํ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๊ด๋ฆฌํ๋ Store๋ฅผ ๋ง๋๋ ๊ฒ vuex
์ด๋ค!
์ปดํฌ๋ํธ๊ฐ ๋ง๊ณ ์ปดํฌ๋ํธ๊ฐ ๊ณต์ ํ๋ ์ํ ์ ๋ณด๊ฐ ๋ง์์ง๋ ๊ฒฝ์ฐ ์ด๋ฅผ ์ค์์์ ๊ด๋ฆฌํ๋๋ก ํ๋ค.
store
์ ์ ์ฅ๋ ์ํ ์ ๋ณด๊ฐ ์
๋ฐ์ดํธ๋๋ฉด ์ด๋ฅผ ๊ณต์ ํ๋ ๋ชจ๋ ์ปดํฌ๋ํธ๋ ์์์ ์ด ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์งํ๊ณ ๋ฐ์ํ๋ค.Vuex๋ ๋ฌด์กฐ๊ฑด ๋์ ํ๋ ๊ฒ์ด ์๋ ํ์ํ ์๊ฐ์ ์ ์ ํ ํ๋จ์ ํตํด ๊ฒฐ์ ํด์ผํ๋ค. ์ค๋ํ ์ด์์ SPA์์ ์ฐ๋๊ฒ ์ข์๋ณด์ธ๋ค.
์ค์์์ ๊ด๋ฆฌํ๋ ๋ชจ๋ ์ํ ์ ๋ณด, ์ฆ Data๋ฅผ ์๋ฏธํฉ๋๋ค.
Mutation
์ ์ ์๋ ๋ฉ์๋์ ์ํด ๋ณ๊ฒฝ๋ฉ๋๋ค.ํ ๊ณณ
์ ๋ชจ์์ ๊ด๋ฆฌํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.Backend API์ ํต์ ํ์ฌ data fetching ๋ฑ์ ์์ ์ ์ํํ๋ค.
dispatch
๋ฉ์๋์ ์ํด ํธ์ถ๋๋ค.context
๊ฐ ์ธ์๋ก ๋์ด์จ๋ค. ์ด๋ฆ์ด context
์ธ ์ด์ ๋ ํด๋น ๊ฐ์ฒด๋ ๋ชจ๋ Vuex ์์์ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.store.js
ํ์ผ ๋ด์ ์๋ ๋ชจ๋ ์์์ ์ ๊ทผํ์ฌ ์์ฑ ์ ๊ทผ&๋ฉ์๋ ํธ์ถ์ด ๊ฐ๋ฅํ๋ค.mutations
์ ์ ์๋ ๋ฉ์๋๋ฅผ commmit
๋ฉ์๋๋ก ํธ์ถํ๋ค.โก โญstate
๋ ์ค๋ก์ง mutations
๋ฉ์๋๋ฅผ ํตํด์๋ง ์กฐ์ํ๋ค. ๐ฅ ๋ช
ํํ ์ญํ ๋ถ๋ด์ ํตํด ์๋น์ค ๊ท๋ชจ๊ฐ ์ปค์ ธ๋ state๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ด๋ฆฌํ๊ธฐ ์ํจ์
๋๋ค.
Vuex ์ ์ฅ์์์ ์ํ๋ฅผ ์ ์ผํ๊ฒ ๋ณํ์ํฌ ์ ์๋ ๋ฐฉ๋ฒ
Actions
์์ commit
๋ฉ์๋์ ์ํด ํธ์ถ๋๋ค.state
๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ๋๋ฌธ์ mutations
์ ์ ์๋๋ ๋ฉ์๋์ ์ฒซ๋ฒ์งธ ์ธ์๋ก state
๊ฐ ๋์ด์จ๋ค.๋๊ธฐ์
์ธ ์ฝ๋๋ง ์์ฑํ๋ค.state๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ํ์ฉํ์ฌ ๊ณ์ฐํ ๋ฐ์ดํฐ ๋๋ ์ํ. ๋ฐ๋ผ์ ์ฒซ ๋ฒ์งธ ์ธ์๋ก state๊ฐ ๋์ด์จ๋ค.
getters
๋ ์ ์ฅ์์ state
๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ณ์ฐํ๋ค.์๋ฅผ๋ค์ด, state์ todo list์ ํด์ผํ ์ผ์ ๋ชฉ๋ก์ด ์๋ค๊ณ ์๊ฐํด๋ณด์. todo๊ฐ ์๋ฃ๋ ๋ชฉ๋ก๋ง filteringํด์ ๋ณด์ฌ์ค์ผ ํ๋ ๊ฒฝ์ฐ getters
์์ .filter
array helper๋ฅผ ์ฌ์ฉํด completed
์ ๊ฐ์ด true
์ธ ์์๊ฐ ํํฐ๋ง ๋์ ๊ณ์ฐ๋ ๊ฐ์ ๋ด์ ๋๋๋ค.
๐ฅ ์ฌ๊ธฐ์ ํต์ฌ์ getters
์์ฒด๊ฐ state
๋ฅผ ๋ณ๊ฒฝ
ํ์ง ์๋๋ค. ๋จ์ํ๊ฒ state๋ฅผ ํน์ ํ ์กฐ๊ฑด์ ๋ฐ๋ผ ๊ตฌ๋ถ ๋๋ ๊ณ์ฐํ ๊ฐ์ ๊ฐ์ ธ์จ๋ค get
๊ณ ํ ์ ์๋ค.
Vuex ๋ด๋ถ์ ์์๊ฐ ์ปค์ ธ ์ด๋ฅผ ๋ค์ ๋ชจ๋ํ ํ ๋ ์ฌ์ฉํ๋ค.