vue - store 状态管理

本文整理了Vuex的基本使用,包含index.js、getters.js、app.js的代码示例,展示了模块、getters、state、mutations、actions的使用,还介绍了在组件中通过mapGetters和mapActions使用Vuex的方法,最后建议可结合官方文档理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

整理vuex 的基本使用。

目录结构如下:

index.js 代码如下:

 

import Vue from 'vue';

import Vuex from 'vuex';

import app from './modules/app';

import getters from './getters';

Vue.use(Vuex);

const store = new Vuex.Store({

    modules: {

        app

    },

    getters

});

export default store;

 

getters.js 代码如下:

const getters = {

    menus: (state) => state.app.menus

};

export default getters;

 

app.js 代码如下:

const app = {

    state: {

        menus: [],

        reload: false

    },

    mutations: {

        SET_MENUS(state, payload) {

            state.menus = payload;

        }

    },

    actions: {

        addMenus({ commit, state }, data) {

            let menusArr = state.menus;

            for(let i in menusArr){

                if(menusArr[i].id==data.id){

                    return;

                }

            }

            menusArr.push(data);

            commit('SET_MENUS', menusArr);

        },

        setMenus({ commit, state }, data) {

            commit('SET_MENUS', data);

        }

    }

};

export default app;

 

下面是在组件中的使用:

import { mapGetters, mapActions } from "vuex";

computed: {

...mapGetters(["menus"])

},

methods: {

...mapActions(["addMenus"]),

}

整理完毕,。如果还是不理解,请查看vuex官方文档后,再看此篇博客,仅供参考。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值