Vuex store

Vuex

一个store有四个属性:state,getters,mutations,actions。

State

state上存放的,说的简单一些就是变量,也就是所谓的状态。就是放一些变量

const store = new Vuex.Store({
    state: {
        count:0
    },
    mutations: {
        // 加1
        increment(state) {
            state.count++;
        },
        // 减1
        decrement(state) {
            state.count--
        }
    }
})

Getters

Getter接受state作为其第一个参数:

conststore=newVuex.Store({

state:{

todos:[

{id:1,text:'...',done:true},

{id:2,text:'...',done:false}

]

},

getters:{

doneTodos:state=>{

returnstate.todos.filter(todo=>todo.done)

}

}

})

computed:{

doneTodosCount(){

returnthis.$store.getters.doneTodosCount

}

}

getters就是可以对数据进行了处理后的一个缓存,State更新它才会重新计算

Vuex允许我们在store中定义“getter”(可以认为是store的计算属性)。

Mutation定义更改State的变量值

const store = new Vuex.Store({
  state: {
    count: 1
  },
  mutations: {
    increment (state) {
      // 变更状态
      state.count++
    }
  }
})

store.commit('increment')//触发increment进行State的变量值的改变

视图触发Action,Action再触发Mutation。

Mutation:必须同步执行。

Action:可以异步,但不能直接操作State。

Action提交的是mutation,而不是直接变更状态

https://vuex.vuejs.org/zh/guide/getters.html

相关推荐