是什么:
是一个专为 Vue.js 应用程序开发的状态管理模式
应用场景:
多个组件共享状态时,使用vuex
使用流程:
页面通过mapAction异步提交事件到action。action通过commit把对应参数同步提交到mutation,mutation会修改state中对应的值。最后通过getter把对应值跑出去,在页面的计算属性中,通过,mapGetter来动态获取state中的值
属性:
有五种,分别是State , Getter , Mutation , Action , Module (就是mapAction)
- state:vuex的基本数据,用来存储变量
- geeter:从基本数据(state)派生的数据,相当于state的计算属性
- mutation:提交更新数据的方法,必须是同步的(如果需要异步使用action)。每个mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数,提交载荷作为第二个参数。
- action:和mutation的功能大致相同,不同之处在于 ==》1. Action 提交的是 mutation,而不是直接变更状态。 2. Action 可以包含任意异步操作。
- modules:模块化vuex,可以让每一个模块拥有自己的state、mutation、action、getters,使得结构非常清晰,方便管理
导入vue.js 和 vuex.js后使用:
<div id="app">
{{this.$store.state.name}}
</div>
<script>
const store = new Vuex.Store({
state: {
name: '初学vuex'
},
mutation: {}
})
var vm = new Vue({
el: '#app',
store
})
</script>