您好,登錄后才能下訂單哦!
這篇文章主要介紹如何解決mpvue+vuex 開發微信小程序vuex輔助函數mapState、mapGetters不可用的問題,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
問題分析
?vuex輔助函數
首先簡單說一下vuex的輔助函數mapState、mapGetters、mapMutations、mapActions,我們在子組件經常用到很多狀態量,為了避免過分的使用this.$store.state.xxx、this.$store.dispatch導致的冗余問題,我們用輔助函數來使代碼變得簡潔易讀。注意了,它就相當于語法糖似的,實際上還會映射為this.$store.吧啦吧啦
?vue-cli + vuex項目
在一般的vue-cli + vuex項目中,主函數 main.js 中會將 store 對象提供給 “store” 選項,這樣可以把 store 對象的實例注入所有的子組件中,從而在子組件中可以用this.$store.state.xxx、this.$store.dispatch 等來訪問或操縱數據倉庫中的數據
new Vue({ el: '#app', store, router, template: '<App/>', components: { App } })
?mpvue + vuex項目
注意了,在mpvue + vuex項目中,很遺憾不能通過上面那種方式來將store對象實例注入到每個子組件中(至少我嘗試N種配置不行),也就是說,在子組件中不能使用this.$store.吧啦吧啦,從而導致輔助函數不能正確使用。這個時候我們就需要換個思路去實現,要在每個子組件中能夠訪問this.$store才行。
解決辦法
這里呢,博主使用的方法很簡單,既然我們需要在子組件中用this.$store 訪問store實例,那我們直接在vue的原型上添加$store屬性指向store對象不就行啦,抱著試一試的心態寫了下面這行代碼。
Vue.prototype.$store = store
這樣一來我們在子組件中便可以用this.$store訪問對象。確實也解決了輔助函數不能使用的問題。
以上是“如何解決mpvue+vuex 開發微信小程序vuex輔助函數mapState、mapGetters不可用的問題”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。