728x90
vuex 를 사용해서 store 에 저장하고 여러페이지에서 동일하게 사용하기 예시
aa 라는 변수를 예로 든다면 state 에 초기값을 설정해 두고 mutations 과 actions 으로 값을 변경 할수도 있고 값을 참조 할때는 store.state.aa 로 가져와서 사용 할 수 있다.
vue 에는 세션이 없기에 의외로 많이 사용하는 방법이라 참고해 두면 좋겠다.
// store.js
import { createStore } from 'vuex';
const store = createStore({
state: {
aa: null, // 초기값
},
mutations: {
setAa(state, value) {
state.aa = value; // 상태 변경
},
},
actions: {
updateAa({ commit }, value) {
commit('setAa', value); // 액션을 통해 상태 업데이트
},
},
});
export default store;
<template>
<div>
<h1>현재 aa 값: {{ aa }}</h1>
<button @click="changeValue">값 변경</button>
</div>
</template>
<script setup>
import { computed } from 'vue';
import { useStore } from 'vuex';
// Vuex 스토어 사용
const store = useStore();
// aa 값을 가져옵니다.
const aa = computed(() => store.state.aa);
// aa 값을 변경하는 메서드
const changeValue = () => {
const newValue = Math.random(); // 새로운 랜덤 값
store.dispatch('updateAa', newValue); // Vuex 액션 호출
};
</script>
<template>
<div>
<h1>bb.vue에서 aa 값: {{ aa }}</h1>
</div>
</template>
<script setup>
import { computed } from 'vue';
import { useStore } from 'vuex';
// Vuex 스토어 사용
const store = useStore();
// aa 값을 가져옵니다.
const aa = computed(() => store.state.aa);
</script>
728x90
'VUE' 카테고리의 다른 글
vue3 약관동의 체크박스 구현 예시 (0) | 2024.11.22 |
---|---|
Vue 3 부모 컴포넌트에서 자식 메서드 호출하기 (0) | 2024.11.17 |
vue3 새창으로 링크 걸기 (0) | 2024.11.16 |
vue api 호출 에러 처리 interceptor.js 파일 예제 (0) | 2024.11.14 |
vue3 inputbox 에서 enter 키로 다음 inputbox 이동 되는 스크립트 (0) | 2024.07.25 |