๋ฐ์ํ
๐ vuex ๋ชจ๋ํ ํ๋ ์ด์
๊ธฐ์กด์ ๋ชจ๋ํ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ํ์๋ ์ฌ์ด์ฆ๊ฐ ์ ์ ์ปค์ง์ ๋ฐ๋ผ ๊ด๋ฆฌ๊ฐ ํ๋ค์ด์ง๋ ๋จ์ ์ด ์๊น
๊ทธ๋ฆฌํ์ฌ ์
๋ฌด ์ฑ๊ฒฉ์ ๋ง๊ฒ ๋ชจ๋ํ๋ฅผ ํด์ผ๊ฒ ๋ค๋ ํ์์ฑ์ ๋๋
๐ ๊ธฐ์กด ๋ฐฉ์์์ ๋ชจ๋ํ ๋ฐฉ์์ ๋ฐ๋๋์ ๋ชจ์ต
๊ธฐ์กด๋ฐฉ์
๋ชจ๋ํ๋ฐฉ์
์ ๋ฐฉ์์ผ๋ก ํ์๋ ์ฒ์์๋ ๊ตฌ์กฐ๋ฅผ ์ก๊ธฐ๊ฐ ์ด๋ ต์ง๋ง, ์ข ๋ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌ๊ฐ ๋๋ค๋ ์ฅ์ ์ด ์กด์ฌํ๋ค.
๐ vuex ๋ชจ๋ํ ๊ตฌ์กฐ
|---store
| |---modules
| |---moduleA.js // moduleA์์ฑ
| |---moduleB.js // moduleB์์ฑ
|--index.js // ๋ชจ๋ ๋ฑ๋ก
๐ฎ moudleA ๊ตฌ์กฐ ์์ค
const moduleA = {
namespaced: true,
state: () => ({
obj1: {},
}),
getters: {
getObj1(state) {
return state.obj1;
},
},
actions: {
someAction({ commit }, payload) {
commit("setObj1", payload);
},
},
mutations: {
setObj1(state, payload) {
state.obj1 = payload;
},
},
};
export { moduleA };
๐ฎ moudleB ๊ตฌ์กฐ ์์ค
const moduleB = {
namespaced: true,
state: () => ({
obj1: {},
}),
getters: {},
actions: {},
mutations: {},
};
export { moduleB };
๐จ index.js(๋ชจ๋๋ฑ๋ก) ๊ตฌ์กฐ ์์ค
import { createStore } from "vuex";
import { moduleA } from "./modules/moduleA";
import { moduleB } from "./modules/moduleB";
const store = createStore({
modules: {
moduleA: moduleA,
moduleB: moduleB,
},
});
export { store };
๐จ main.js vuex ๋ฑ๋ก ์์ค
import { createApp } from "vue";
import App from "./App.vue";
import { store } from "./store/index";
const app = createApp(App);
app.use(store);
app.mount("#app");
๐ฉ ํ๊ธฐ
ํ์คํ ๊ธฐ์กด์ ๋ค ๋ฃ์ด์ ๊ด๋ฆฌํ๋ ๋ฐฉ์๋ณด๋ค๋ ํจ์ฌ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌ๋๋ค๋ ๊ฒ์ ๋๊ผ๋ค. ๊ทธ๋ฆฌํ์ฌ ๋ค์ ํ๋ก์ ํธ์์๋ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌํ๋๊ฒ ์ ์ง๋ณด์ ์ ์ฅ์์๋ ์ข๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
๋ฐ์ํ
'Vue' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ vue jest study๊ธฐ๋ก (0) | 2023.03.03 |
---|---|
๐ vue์์ scss๋ฅผ ํตํด ๊ฐ๋จํ๊ฒ theme๋ณ๋ก ๊ด๋ฆฌํด๋ณด๊ธฐ (1) | 2023.01.24 |
๐ vee-validate ์ ์ฉ (0) | 2022.08.07 |
โ Vue Slot์ผ๋ก ํ ์ด๋ธ ๊ตฌํ (0) | 2022.05.31 |
๐ค vue auto routing + ๋ค๋น๊ฒ์ด์ ๊ฐ (0) | 2022.05.05 |
๋๊ธ