vue3使用vuex

安装 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["方法名"](参数)
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容