詳解vuex中mapState,mapGetters,mapMutations,mapActions的作用
在開始接觸vuex框架的時候?qū)δ切﹕tate,action,mutation,getter等理解的還挺順利的,然后突然出來一種加了一個前綴的mapState等,這樣的就有點蒙圈了。。。特別是官方的文檔并沒有給除詳細(xì)的說明跟例子。。。然后就自己慢慢理解了一下。其實也就是一個重命名而已。。。以下就是例子,希望能幫助理解:
在store中代碼
import Vuex from 'vuex' import Vue from 'vue' Vue.use(Vuex); const store = new Vuex.Store({ state: { count: 10, numb: 10086 }, getters: { add: (state, getter) => { state.count = getter.add; return state.count; }, }, mutations: { increment(state,){ state.count += 2; }, }, actions: { actionA({ dispatch, commit }) { return commit('add'); }, } });
export default store;
在調(diào)用的模塊里面的代碼如下:
<template> <div class="hello"> <button @click="increment">加{{count}}</button> </div> </template> <script> import {mapState,mapActions} from 'vuex' export default { name: 'hello', data () { return { msg: 'Welcome to Your Vue.js App' } }, methods:{ increment(){ this.$store.dispatch('incrementsync').then(() => { console.log('then'); }); } }, computed: mapState({ // mapState相當(dāng)于映射 count: 'numb', //這個時候count應(yīng)該等于多少???! 是等于store文件里面的count呢還是等于numb?答案是等于numb!這邊的意思是mapState把'numb'的值映射給了count,所以count等于10086 }) } </script>
這個時候按鈕應(yīng)該顯示加10還是顯示加10086?答案是加10086,所以map其實就是一個在store文件中的映射而已,就是不用讓你要調(diào)用一個值需要敲這么多代碼:this.$state.count;而只需要用count。。。
界面效果:
好了,其他的mapAction,mapMutations的原理是一樣樣的。
總結(jié)
以上所述是小編給大家介紹的詳解vuex中mapState,mapGetters,mapMutations,mapActions的作用,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
VUE使用vue?create命令創(chuàng)建vue2.0項目的全過程
vue-cli是創(chuàng)建Vue項目的一個腳手架工具,vue-cli提供了vue create等命令,下面這篇文章主要給大家介紹了關(guān)于VUE使用vue?create命令創(chuàng)建vue2.0項目的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07Vite結(jié)合Vue刪除指定環(huán)境的console.log問題
這篇文章主要介紹了Vite結(jié)合Vue刪除指定環(huán)境的console.log問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03vue3響應(yīng)式實現(xiàn)readonly從零開始教程
這篇文章主要為大家介紹了vue3響應(yīng)式實現(xiàn)readonly從零開始教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03使用WebStorm運(yùn)行vue項目的詳細(xì)圖文教程
在WebStorm中怎么打開一個已有的項目,這個不用多說,那么如何運(yùn)行一個vue項目呢?下面這篇文章主要給大家介紹了關(guān)于使用WebStorm運(yùn)行vue項目的相關(guān)資料,需要的朋友可以參考下2023-02-02解決vue的router組件component在import時不能使用變量問題
這篇文章主要介紹了解決vue的router組件component在import時不能使用變量問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07