Vuex 的理解及使用场景

216 阅读1分钟

什么是vuex

  • Vuex 是一个专为 Vue应用程序开发的状态管理模式,每一个Vuex 应用核心就是 store(仓库)

特点

1.Vuex 存储的数据是响应式的

  • 若 store 状态发生改变,相应的组件也会得到相应的更新

  • 改变store中状态的唯一途径就是显式提交 (commit) mutation 这样可以方方便的跟踪 每一个状态的变化

Vuex 五大核心

  • 1.State : 定义应用状态的数据
  • 2.Mutations : 存放 操作修改State中数据的方法 必须是同步函数
  • 3.geeter:从基本数据(state)派生的数据,相当于state的计算属性
  • 4.action:和mutation的功能大致相同,不同之处在于
    • Action提交的是mutation,而不是直接变更状态。
    • Action可以包含任意异步操作。
    1. modules : 模块化veux 让每一个模块拥有自己的 state mutation action getters 方便管理

image.png

Vuex中action和mutation有什么区别?

  • action 提交的是 mutation,而不是直接变更状态。mutation可以直接变更状态。

  • action 可以包含任意异步操作。mutation只能是同步操作。

  • 提交方式不同,action 是用this.$store.dispatch('ACTION_NAME',data)来提交。mutation是用this.$store.commit('SET_NUMBER',10)来提交。

  • 接收参数不同,mutation第一个参数是state,而action第一个参数是context,其包含了

如何在组件中批量使用vuex的state状态 ?

使用 mapState辅助函数 利用对象展开运算符将state混入computed对象中


import {mapState} from 'vuex'
export default{
    computed:{
        ...mapState(['price','number'])
    }
}