import { createApp } from 'vue';
import App from './App.vue';
import store from '@/store';
const app = createApp(App);
app.use(store);
app.mount('#app');
modules 폴더 안에 xxxStore.js로 만든다
xxxStore 파일에 namespaced: true
로 설정해주기
const xxxStore = {
namespaced: true,
state: () => ({
test: 'test입니다'
}),
mutations: {},
getters: {},
actions: {},
};
export default xxxStore;
state.**moduleName**.stateName
computed(() => store.getters["**moduleName**/getterName"])
store.commit("**moduleName**/mutationName", params)
store.dispatch("**moduleName**/actionName", params)
index.js파일의 modules에 xxxStore추가
import Vuex from 'vuex';
// 작성한 모듈을 가져오기
import xxxStore from '@/store/modules/xxxStore.js';
const store = new Vuex.Store({
modules: {
// 키 : 값 형태로 저장됨
xxxStore,
},
});
export default store;
import { useStore } from 'vuex';
const store = useStore();
state.**moduleName**.stateName
으로 부릅니다.computed(() => store.getters["**moduleName**/getterName"])
으로 부릅니다.store.commit("**moduleName**/mutationName", params)
으로 부릅니다.store.dispatch("**moduleName**/actionName", params)
으로 부릅니다.<template>
<div>
<span>{{test}}</span>
</div>
</template>
<script>
import OnlySmallLogoTopNav from
import { useStore } from 'vuex';
export default {
name: 'xxxView',
setup() {
const store = useStore();
const test = store.state.xxxStore.test;
return {
test,
};
},
};
</script>
<style></style>