美文网首页
第十一章 Vuex之store

第十一章 Vuex之store

作者: kzc爱吃梨 | 来源:发表于2019-10-30 23:32 被阅读0次

    用来管理状态,共享数据,在各个组件之间管理外部状态
    如何使用?

    第一步: 在main.js引入vuex,并通过use方法使用它

    import Vuex from 'vuex'
    Vue.use(Vuex)
    

    第二步: 在main.js创建状态仓库

    //创建状态仓库,注意Store,state不能改
    var store = new Vuex.Store({
      state: {
        num: 88
      }
    })
    

    第三步:通过this.$sore.state.XXX直接拿到需要的数据

    computed: {
        getNum: function(){
          return this.$store.state.num
        }
      }
    

    11.5 Vuex的相关操作

    vuex状态管理的流程
    view———­>actions———–>mutations—–>state————­>view
    除了能够获取状态如何改变状态呢?

    //创建状态仓库,注意Store,state不能改
    export default new Vuex.Store({
        state: {
          num: 88
        },
        mutations: {
          //定义我们状态改变的函数
          increase: function(state){
            state.num++
          },
          decrease(state){
            state.num = state.num - 20
          }
        },
        actions: {
           //context为我们上下文的对象
          decreaseAction: function(context){
            //actions只能对mutations中的函数进行操作
            // setTimeout(function(){
              context.commit('decrease')
            // },1000)    
          }
        },
        getters: {
          getNum: function(state){
            return state.num>0 ? state.num : 0
          }
        }
      })
    
     methods: {
        padd(){
          this.$store.commit('increase')
        },
        pActions(){
          this.$store.dispatch('decreaseAction')
        }
      },
      computed: {
        getNum: function(){
          //return this.$store.state.num
          return this.$store.getters.getNum
        }
      }
    

    注意:actions提交的是mutation,而不是直接变更状态
    actions可以包含异步操作,但是mutation只能包含同步操作

    相关文章

      网友评论

          本文标题:第十一章 Vuex之store

          本文链接:https://www.haomeiwen.com/subject/txqovctx.html