Vuex有哪些属性?

vuex是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间的数据共享

使用vuex管理数据的好处:

  • 能够在vuex中集中管理共享的数据,便于开发和后期进行维护
  • 能够高效的实现组件之间的数据共享,提高开发效率
  • 存储在vuex中的数据是响应式的,当数据放生改变时,页面中的数据会同步更新

vuex中的数据和data中的数据与什么区别?

  • vuex中的数据是全局的,共享的,data中的数据是私有的
  • vuex中的数据是响应式的,只要vuex中的数据发生改变,引用vuex中的数据的文件会同步更新
  • vuex中的数据是单向的,想要修改vuex中的数据必须在mutation中修改

vuex有哪些属性?

state---提供唯一的公共数据源,所有共享的数据都要统一放到strore中的state中存储

组件访问state中的数据又两种方式:

//组件访问state中数据的第一种方式
this.$store.state.全局数据名称


//组件访问state中数据的第二种方式
//1.先按需导入 mapState函数 
import {mapState} from 'vuex'
//2.使用展开运算符将全局的数据映射为当前组件的一个计算属性
computed:{
  ...mapState(['全局数据的名称'])  
}

mutation---用于修改变更$store中的数据

  • store中在state中存储的数据只能在mutation中修改,其余任何地方都不能够修改
  • 在mutation中不能编写异步的代码,只能够执行同步的代码

mutation使用方式:

mutation:{
    //不传递参数的形式
    add(state){
        //第一个形参永远都是state,也就是$state对象
        //第二个形参是调用add时传递的参数
        state.count++
    }
    
    //传递参数的形式
    add(state,step){
        //第一个形参永远都是state,也就是$state对象
        //第二个形参是调用add时传递的参数
        state.count += step
        
    }

}

<button @click='Add'>+1</button>
methods:{
    Add(){
        //使用commit函数调用mutations中的对应函数
        //第一个参数是我们要调用的mutations中的函数名
        //第二个参数是要传递给add函数的参数
        this.$store.commit('add',10)

    }

}

Action---执行异步操作

Action的使用方式1---this.$store.dispatch()是触发 actions 的第一种方式

Action的使用方式2:  

1. 按需导入 mapActions函数   

2. 将指定的actions函数,映射为当前组件的 methods 函数

import {mapActions} from 'vuex'

methods:{

    ...mapActions(['subAsync']),
    this.subAsync()

}

//第二种导入方式可以直接在html结构中使用,也就是可以直接写在@click所对应的事件中,
<button @click='subAsync'>点击-1</button>

Getter---用于对store中的数据进行加工处理形成新的数据,但只是对store中的数据包装,以另外一中形式返回出来

Getter只会包装store中保存的数据,并不会修改store中保存的数据,当store中的数据发生变化时,Getter生成的内容也会随之变化

//Getter的使用方式1
export default new Vuex.Store({

    ...
    getters:{
        //添加了一个showNum的属性
        showNum: state=>{

            return '最新的count值为:'+ state.count;
        }

    }

})

//在Addition.vue中,添加插值表达式使用getters

{{$store.getters.showNum}}

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值