-
Notifications
You must be signed in to change notification settings - Fork 4
Vuex store
Zin0_0 edited this page Nov 30, 2020
·
2 revisions
-
State
- ํ๋ก์ ํธ์์ ๊ณตํต์ผ๋ก ์ฌ์ฉํ ๋ณ์๋ฅผ ์ ์
- ํ๋ก์ ํธ ๋ด์ ๋ชจ๋ ๊ณณ์์ ์ฐธ์กฐ & ์ฌ์ฉ ๊ฐ๋ฅ
- state๋ฅผ ํตํด ๊ฐ ์ปดํฌ๋ํธ์์ ๋์ผํ ๊ฐ์ ์ฌ์ฉํ ์ ์๋ค.
-
Mutations
- state๋ฅผ ๋ณ๊ฒฝ์ํค๋ ์ญํ
- ๋ฐ๋ผ์, Mutations๋ฅผ ์ด์ฉํด์๋ง state๋ฅผ ๋ณ๊ฒฝํด์ผํ๋ค.
- ๋๊ธฐ ์ฒ๋ฆฌ(๋น๋๊ธฐ ์ฒ๋ฆฌ X)
- ์์ ํจ์๊ฐ ์คํ๋๊ณ ์ข ๋ฃ๋ ํ ๊ทธ ๋ค์ ์๋์ ํจ์๊ฐ ์คํ๋๋ค.
-
commit('ํจ์๋ช ', '์ ๋ฌ ์ธ์')
๋ก ์คํ- ์ด ๋, created ํจ์๋ arrow function์ด ์๋๋ผ
created(): function() {}
์ ํํ์ ํด์ค์ผํ๋ค. arrow function์ ๋ด๋ถ this๋ ๋ฉ์๋๋ฅผ ์์ ํ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค์ง ์๊ณ ์์ ์ปจํ ์คํธ์ธ ์ ์ญ ๊ฐ์ฒด windows๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ๋ฐ๋ผ์, ES6์ ์ถ์ฝ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ vue์ instance๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒ์ด ์ข๋ค.
- ์ด ๋, created ํจ์๋ arrow function์ด ์๋๋ผ
-
Actions
- Mutations๋ฅผ ์คํํ๋ ์ญํ
- ๋น๋๊ธฐ ์ฒ๋ฆฌ(๋๊ธฐ ์ฒ๋ฆฌ X)
- ์์์ ์๊ด ์์ด, ๋จผ์ ์ข ๋ฃ๋ ํจ์์ ํผ๋๋ฐฑ์ ๋ฐ์ ํ์ ์ฒ๋ฆฌ๋ฅผ ํ๋ค.
-
dispatch('ํจ์๋ช ', ์ ๋ฌ์ธ์)
๋ก ์คํdispatch('Foo', somethingForState)
- actions ๋ด์ ํจ์ ํํ๋ก ์์ฑ
- ๋น๋๊ธฐ ์ฒ๋ฆฌ => ์ฝ๋ฐฑํจ์๋ก ์์ฑ
- Actions ์คํ -> mutation ์คํ -> state ๋ณ๊ฒฝ ์ด๋ผ ์๊ฐํ๋ฉด ๋๋ค.
-
Getters
- ๊ฐ Components์ ๊ณ์ฐ๋ ์์ฑ์ ๊ณตํต ์ฌ์ฉ ์ ์
- ์ฌ๋ฌ Components์์ ๋์ผํ ๊ณ์ฐ๋ ์์ฑ์ด ์ฌ์ฉ๋ ๊ฒฝ์ฐ Getters์์ ์ ์ํด์ ๊ณตํต์ผ๋ก ์ฝ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ
- ํ์ ๋ชจ๋์ getters๋ฅผ ๋ถ๋ฌ์ค๊ธฐ ์ํด์๋
this.$store.getters["๊ฒฝ๋ก๋ช /ํจ์๋ช "];
์ ์ฌ์ฉ
-
์์ ๋ชจ๋์ dispatch, commit ์คํ ์ํค๋ ๋ฐฉ๋ฒ
- ํ์ ๋ชจ๋์์ ํ์ or ๋ถ๋ชจ ๋ชจ๋์ state์ ์ ๊ทผํ๊ธฐ ์ํด์๋ rootState๋ฅผ ์ฌ์ฉ
- Mutations๋ Actions ์คํ ๊ฐ์ ๊ฒฝ์ฐ๋, ์ธ๋ฒ์งธ ์ธ์์
{root:true}
๋ฅผ ์ง์ ํด์ฃผ๋ฉด ๋จdispatch('Foo', 'something', {root:true})