Vue之Vuex使用

1 篇文章 0 订阅

上篇已经简单介绍了vuex的部署~这篇就讲下Vuex的简单使用吧

store已经挂载在App Vue根组件~因此就可以像在组件中使用router一样使用store:

获取state中某个属性:this.$store.state.name (name为所需的属性key)

执行一个commit(mutations中的方法):this.$store.commit('name')  mutations中所定义的名字

执行一个dispatch(就是action中的方法):this.$stotre.dispatch('name') action中所定义的名字

执行一个getter:this.$store.getter.name,类似于state,主要做的是一些数据格式化处理~ 


在项目中的使用也就是如下啦~~

state一般都会写在computed属性中啦~,getter就相当于一个vuex的computed

computed:{
 loading(){
  return this.$store.state.loadingStatus
 }
},
created() {
   this.$stroe.commit('SET_BTNSTYLESBG')
  this.$store.dispatch('getBookId')

}

getter的用法也是类似的了~
但是在一些组件中需要引入很多的state状态值以及共享数据,甚至一些commit操作的时候,感觉太麻烦了!~有没有一些简单便捷的方法?
答案是当然有的啦~辅助函数!vuex官方文档有写 ~极大程度的提高了开发效率~

state,getter,mutatios,actions每一个都有一个相应的辅助函数~下面就详细说上一说

一般有两种方法

import { mapState, mapMutations, mapGetters,mapAction } from ‘vuex’

或者 import * as types from ‘vuex’

 第二种是我喜欢的风格~简单看着舒服~不过第一种看着更加直接一些!

需要写的位置依旧不变~只是使用方法稍加变化~!

computed: ...typesState(['name', 'userInfo'])

getter的使用跟上面state的一样~

created() {

    this.name //就是state中的那么属性值!

}

在Vuex有说道,所有正常的状态改变都必须通过commit来进行提交!(所以不要妄图去直接修改state中的属性~这样也许在非严格模式下是可以的~但是一旦出了问题,脑壳儿疼的,因为你会找不到你在哪里做了操作!)

methods:{

/*这里就是mutation与action放的位置了*/

    ...types.mapMutations(['a', ''b])

    ...types.mapAction(['c', 'd'])    

    上述写法也可以修改为一下形式:

    ...types.mapMutations({

        'commitA': 'a'

        'commitB': 'b'

    })

    ...types.mapAction({

        'actoinC': 'c',

        'actionD':'d'

    })

}

这种写法相当于将commitA 映射为a,actionC映射为c,使用是可以直接进行替换~

mounted: {

    /*data就是commit时候所提交的数据,这是使用我们在methods中引入的action,mutation方法了*/

    this.a(data)      ------------------------------- this.commitA(data)

    this.c(data) -------------------------------  tihs.actionC(data)

}

是不是瞬间觉得简单了很多呢~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值