安装 npm install vuex@next --save
store/index.ts
import { createStore } from 'vuex'
interface objectItem{
[prop:string]:any
}
export default createStore({
state: {
statusObj: {a:9}
},
mutations: {
setStatusObj(state:objectItem, payload:objectItem) {
state.statusObj = payload;
},
},
actions: {
},
getters: {
filterStatusLabel(state:objectItem) {
return (statusCode: string)=>{
const statusOpt = state.statusObj.filter((item:objectItem) => item.value == statusCode);
return statusOpt[0].label || "--";
}
}
},
modules: {
}
})
main.ts引入
import store from './store'
app.use(store)
项目中使用
import { useStore } from "vuex";
const store = useStore();
state:
store.state.变量名
store.commit("方法名", 参数)
store.dispatch("方法名", 参数)
store.getters["方法名"](参数)
也可以在computed中使用state和getters
const values= computed(() => (参数: string) => {
return store.state.变量名 || store.getters["方法名"](参数)
});