在组件中导入方法
import {mapState,mapGetters,mapActions,mapMutations} from 'vuex'
mapState方法的使用
注意:这里的…是ES6语法,表示将该的对象所有属性展开,放入其所在上级对象中
......
computed:{//借助mapState生成计算属性,从Vuex中的state对象中读取数据(对象写法)...mapState({sum:'sum',school:'school',subject:'subject'})//借助mapState生成计算属性,从Vuex中的state对象中读取数据(数组写法)...mapState(['sum','school','subject']),
}
配置完毕之后,当组件访问state中的数据,可以由原来的$store.state.sum
等价为sum
,其他数据以此类推
mapGetters方法的使用
......
computed:{//借助mapGetters生成计算属性,从Vuex中的getters对象中读取数据(对象写法)...mapGetters({bigSum:'bigSum',}),//借助mapGetters生成计算属性,从Vuex中的getters对象中读取数据(数组写法)...mapGetters(['bigSum']),
}
配置完毕后,当组件访问getters中的数据,可以由$store.getters.bigSum
替换为bigSum
mapActions方法的使用
帮助我们生成与actions对话的方法,即包含$store.dispatch(xxx)
的函数
注意:需要传递参数时,需要在组件进行方法调用时传参,例如按钮点击事件:
<button @click="incrementOdd(value)"></button>
methods:{//用于取代 $store.dispatch('incrementOdd'),对象写法...mapActions({incrementOdd : 'incrementOdd',incrementWait : 'incrementWait'}),//数组写法...mapActions(['incrementOdd','incrementWait'])
}
mapMutations方法的使用
帮助我们生成与mutations对话的方法,即包含$store.commit(xxx)
的函数
注意:需要传递参数时,需要在组件进行方法调用时传参,例如按钮点击事件:
<button @click="increment(value)"></button>
methods:{...mapMutations({increment:'ADD',decrement:'DECREMENT'})
}