vuex

17 篇文章 0 订阅

5种状态:

  • state  -> 基本数据
  • getters ->  从基本数据派生的computed:{
        ...mapState(['repeat','nowIndex'])
    }同步
  • actions  -> 提交更改数据的方法,包裹mutations,异步
  • modules -> 模块化Vuex

state

  • 先在vuex中声明数据
  • 组件中获取state中的数据

computed:{
    count:function()
        return this.$store.state.count;
    }
}

computed:{
    ...mapState(['repeat','nowIndex'])
}

getters

  • 定义派生数据

getters:{

     countDouble:function(state){

          return state.count*2;

    }

}

  • 组件获取

computed:{

    doubleCount:function(){

         return this.$state.getters.countDouble;

    }

}

computed:{

    ...mapGetters([]}

}

mutations

  • mutations 是 vuex中修改state状态的唯一方法
  • mutations是同步的,异步用actions
  • vuex中声明mutations

mutations:{

    increase(state){

        state.count++;

    }

}

  • 组件中methods中引用mutations

methods:{

    ...mapMutations([])

}

  • 组件使用mutations

this.$store.commit('increase')

actions

  • 提交异步的mutations,而不是直接修改state
  • 可以包含任意的异步操作
  • actions接受一个与store实例具有相同方法和属性的context对象。

声明

actions:{

    increase(context){

        setInterval(function(){

            context.commit('increase')

        },1000)

    }

}

组件中引用

methods:{

    ...mapState([])

}

分发actions

store.dispatch('increase')

modules

  • 是每个模块拥有自己的state,mutations,getters,actions,modules
  • actions->context.state是局部状态
  • context.rootState才是总状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>