vuex(五大核心,高级用法—辅助函数,数据持久化)

我们来说说什么是vuex

1.什么是vuex

Vuex 是一个专为Vuex.js应用程序开发的状态管理模式,他由五部分组成:
分别是:state,actions,mutations,modulse,getters
在这里插入图片描述

2.vuex的五大核心
1.state:存放状态

存放公共数据,是一个仓库,任何组件都可以调用里面的数据。
使用:在state中直接声明数据即可。

2. getters:vuex中的计算属性

相当于组件中的计算属性,当state中的数据发生改变,getters中的数据也回跟着改变
使用:在vuex中跟state同级,用发跟vux中像似。

3.mutations

是调用state中数据的 ,可以对state中的数据进行添加和修改。
使用方法是在this.$store.commit()

4.Actions 异步

在仓库store中定义需求调用mutations方法,在对应组件中定义触发更改状态的模板和方法
注意:mutations必须是同步函数,actions可以为异步函数。

5.modules 模板

​ 在仓库中定义不同的模板以及modules方法,
​ 在对应的组件获取并显示在页面上
​ 一般在做大型项目的时候,用来管理的

3.vuex的数据持久化

vuex的持久化工具 本地存储的工具
会帮我们自动把vuex里的数据存在本地存储中 不需要我们再写任何跟本地存储有关的代码
注意:只有在vuex底下才能用
Vuex-persist
第一步:安装 cnpm i vuex-persist --save
第二部 在store/index 引入 import vuexpersist from “vuex-persist”
第三步 配置

plugins:[
   new vuexPersist({
     storage:window.localStorage
   }).plugin
]
4.高级用法—辅助函数(语法糖)
语法糖,辅助函数:mapstate,mapActions,mapMutations,mapGetters
当一个组件需要多个状态时这些状态,这些状态都声明成计算属性过于冗长,于是就有了辅助函数

注:mapState,mapGetters返回的是属性,所以混入到 computed 中,mapMutations,mapActions返回的是方法,只能混入到methods中
使用:

<script>
import { mapState , mapMutations , mapActions , mapGetters  } from 'vuex';
export default {
  data(){
    return{

    }
  },
  computed:{
    ...mapState({
      counts:(state) => state.count
    }),
    //mapState就等于下面这个
    // counts(){
    //   return this.$store.state.count
    // },
    ...mapGetters({
      getternum:'doneTodos'
    }),
    //mapGetters就等于下面的这个
    // getternum(){
    //   return this.$store.getters.doneTodos
    // }

  },
  methods:{
    ...mapMutations({
      addnum:'addNum'
    }),
    addnum1(){
      this.addnum()
    },
    //mapMutations就等于下面的这个
    // addnum1(){
    //   this.$store.commit('addNum')
    // },
    
    ...mapActions({
      actionnum:'actionNumAdd'
    }),
    actionnum6(){
      this.actionnum()
    },
    //mapActions就等于下面的这个
    //  actionnum6(){
    //   this.$store.dispatch('actionNumAdd')
    // }
    
  }
}
</script>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值