Vuex---对Vuex的理解与使用~~~

本文详细介绍了Vue应用中状态管理工具Vuex的使用方法。包括如何通过创建store、配置actions和mutations来管理共享状态;并通过具体示例展示了如何在组件中读取和修改Vuex中的数据。

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

一。原理分析

使用场景:共享

1。多个组件依赖于同一个状态(数据)。

2.来自不同组件的行为需要变更同一状态。

在 Actions  中发送ajax请求。

Vuex中有三个东西:Actions、Mutations、State,这些都被store管理着。

允许直接commit到Motations。

二。使用Vuex

1.创建src/store/index.js文件:

作用:初始化数据、配置actions、配置mutations

// 该文件用于创建Vuex中最为核心的store

// 引入Vuex
import Vuex from 'vuex'
import Vue from 'vue'

// 准备actions---用于响应组件中的动作
const actions ={
    // jia:function(){
    //     console.log("actions中的jia被调用了");
    // }
    jia(context,value){
        console.log("actions中的jia被调用了");
        context.commit("JIA",value)
    },
    jian(context,value){
        console.log("actions中的jian被调用了");
        context.commit("JIAN",value)
    },
    // 当sum为奇数的时候在  加
    jiaOdd(context,value){
        console.log("actions中的jiaOdd被调用了");
        if(context.state.sum % 2){
            context.commit("JIA",value)
        }  
    },
    // 等一等再加
    jiaWait(context,value){
        console.log("actions中的jiaWait被调用了");
        setTimeout(()=>{
            context.commit("JIA",value)
        },500)    
    },
}

// 准备mutations--用于操作数据(state)
const mutations = {
    JIA(state,value){
        console.log("mutations中的JIA被调用了");
        state.sum += value;
    },
    JIAN(state,value){
        console.log("mutations中的JIAN被调用了");
        state.sum -= value;
    }
}

// 准备state---用于存储数据
const state = {
    sum:0 //用于求和:当前的和
}

// 准备getters--用于将state中的数据进行加工
const getters ={
    bigSum(state){
        return state.sum *10;
    }
}

Vue.use(Vuex)
// 创建store
const store = new Vuex.store({
    actions:actions,
    mutations:mutations,
    state:state,
    getters,
    
})

// 暴露store
export default store

2. 在main.js中,创建vm时传入store配置项:

 

3. 在组件中读取Vuex中的数据:

 4.组件中修改Vuex中的数据:

 5.getters的使用:

使用场景:当state中的数据需要经过加工后再使用时,再getters中进行加工。

1)再src/store/index.js中:

 2)在组件中读取getters中的数据:

 二。mapState方法和mapGetters方法

1)mapState方法:用于帮助我们映射state中的数据为计算属性。

 2)mapGetters方法:用于帮助我们映射getters中的数据为计算属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值