Vue Composition API를 통해 공식 발표된 Vuex4 상태 관리
설치하다.
현재(2020년 2/3)에서 Vuex를 기존 저장소로 가져오려면
# npm の場合
npm install vuex@next --save
# yarn の場合
yarn add vuex@next --save
에 설치합니다.이어서
/store/index.ts
import { createStore } from 'vuex'
export const store = createStore({
state () {
return {
count: 0
}
},
mutations: {
increment (state) {
state.count++
}
}
})
.main.ts
import { createApp } from 'vue'
import App from './App.vue'
import router from './router';
import {store} from "./store";
const app = createApp(App)
.use(store)
.use(router)
router.isReady().then(() => {
app.mount('#app');
});
이렇게 하면 Vuex의 초기 설정이 완성된다.Vue Composition API에서 Vuex를 호출합니다.
Vuex는 Vue3에서 정식으로 가져온 Vue Composition API에서 실제로 사용됩니다.
setup()
내 사용할 수 없음this.$store
.대신 useStore()
글로벌 State를 component 내에서 처리합니다.Vuex에서
computed()
methods
// 省略
<script>
import {computed} from "vue"
import {useStore} from "vuex"
export default {
setup(){
const store = useStore()
return {
// state を呼び出す場合
count: computed(()=>store.state.count),
// getters を呼び出す場合
double: coumputed(()=>store.getters.double),
// mutation を呼び出す場合
increment:() =>store.commit("increment"),
// action を呼び出す場合
asyncIncrement:() => store.dispatch("asyncIncrement")
}
}
}
</script>
위에서 말한 바와 같이 setup()
내에 Vuex를 사용한다.TypeScript Support
Vue 3.x까지 Vuex의 유형을 정의하는 데 있어 공식 제공
GetterTree, ActionTree, MutationTree
등이다.그렇지만
any
any
Vue4.0부터
InjectionKey
를 사용하여 유형을 정의합니다.방금
/store/index.ts
에서 유형을 정의합니다.import {InjectionKey} from "vue"
import { createStore, Store, useStore as baseUseStore } from 'vuex'
export interface GlobalState{
count:number
}
export const StateKey: InjectionKey<Store<GlobalState>> = Symbol()
export const store = createStore({
state () {
return {
count: 0
}
}
})
// useState を呼び出す度、 StateKey で型を定義するのを避けるために、ここであらかじめ定義する
export function useStore(){
return baseUseStore(StateKey)
}
이상으로 Component 내에서useStore()
중 부여형 물건을 사용할 수 있습니다.인용하다
Reference
이 문제에 관하여(Vue Composition API를 통해 공식 발표된 Vuex4 상태 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/okakyo/articles/87faf411c4766e5ccb4a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)