解決mpvue + vuex 開(kāi)發(fā)微信小程序vuex輔助函數(shù)mapState、mapGetters不可用問(wèn)題
前言
最近博主正在用微信小程序開(kāi)發(fā)一款網(wǎng)上商城系統(tǒng)。恰好趕上了美團(tuán)開(kāi)源的小程序開(kāi)發(fā)框架mpvue。該框架繼承了vue.js的特性,用起來(lái)還是蠻爽的。然后在開(kāi)發(fā)中,數(shù)據(jù)倉(cāng)庫(kù)這塊懵逼了, 引入的vuex的輔助函數(shù)mapState、mapGetters、mapMutations、mapActions等怎么就不能用呢。苦惱之際打開(kāi)D盤,一番愉悅之后,終于想通啦…
問(wèn)題分析
•vuex輔助函數(shù)
首先簡(jiǎn)單說(shuō)一下vuex的輔助函數(shù)mapState、mapGetters、mapMutations、mapActions,我們?cè)谧咏M件經(jīng)常用到很多狀態(tài)量,為了避免過(guò)分的使用this.$store.state.xxx、this.$store.dispatch導(dǎo)致的冗余問(wèn)題,我們用輔助函數(shù)來(lái)使代碼變得簡(jiǎn)潔易讀。注意了,它就相當(dāng)于語(yǔ)法糖似的,實(shí)際上還會(huì)映射為this.$store.吧啦吧啦
•vue-cli + vuex項(xiàng)目
在一般的vue-cli + vuex項(xiàng)目中,主函數(shù) main.js 中會(huì)將 store 對(duì)象提供給 “store” 選項(xiàng),這樣可以把 store 對(duì)象的實(shí)例注入所有的子組件中,從而在子組件中可以用this.$store.state.xxx、this.$store.dispatch 等來(lái)訪問(wèn)或操縱數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)
new Vue({ el: '#app', store, router, template: '<App/>', components: { App } })
•mpvue + vuex項(xiàng)目
注意了,在mpvue + vuex項(xiàng)目中,很遺憾不能通過(guò)上面那種方式來(lái)將store對(duì)象實(shí)例注入到每個(gè)子組件中(至少我嘗試N種配置不行),也就是說(shuō),在子組件中不能使用this.$store.吧啦吧啦,從而導(dǎo)致輔助函數(shù)不能正確使用。這個(gè)時(shí)候我們就需要換個(gè)思路去實(shí)現(xiàn),要在每個(gè)子組件中能夠訪問(wèn)this.$store才行。
解決辦法
這里呢,博主使用的方法很簡(jiǎn)單,既然我們需要在子組件中用this.$store 訪問(wèn)store實(shí)例,那我們直接在vue的原型上添加$store屬性指向store對(duì)象不就行啦,抱著試一試的心態(tài)寫(xiě)了下面這行代碼。
Vue.prototype.$store = store
這樣一來(lái)我們?cè)谧咏M件中便可以用this.$store訪問(wèn)對(duì)象。確實(shí)也解決了輔助函數(shù)不能使用的問(wèn)題。
總結(jié)
以上所述是小編給大家介紹的解決mpvue + vuex 開(kāi)發(fā)微信小程序 vuex輔助函數(shù)mapState、mapGetters不可用問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
vue路由切換時(shí)取消之前的所有請(qǐng)求操作
這篇文章主要介紹了vue路由切換時(shí)取消之前的所有請(qǐng)求操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09前端項(xiàng)目中如何使用百度地圖api(含實(shí)例)
當(dāng)我們遇到定位展示的時(shí)候會(huì)出現(xiàn)使用地圖展示的需求,下面這篇文章主要給大家介紹了關(guān)于前端項(xiàng)目中如何使用百度地圖api(含實(shí)例)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06Vue實(shí)現(xiàn)記住賬號(hào)密碼功能的操作過(guò)程
這篇文章主要介紹了Vue實(shí)現(xiàn)記住賬號(hào)密碼功能,用戶登錄時(shí)若勾選“記住我”功能選項(xiàng),則將登錄名和密碼(加密后)存入本地緩存,下次登錄頁(yè)面加載時(shí)自動(dòng)獲取保存好的賬號(hào)和密碼(需解密),回顯到登錄輸入框中,下面分享我實(shí)現(xiàn)的具體步驟,需要的朋友可以參考下2022-07-07解決vue中axios設(shè)置超時(shí)(超過(guò)5分鐘)沒(méi)反應(yīng)的問(wèn)題
這篇文章主要介紹了解決vue中axios設(shè)置超時(shí)(超過(guò)5分鐘)沒(méi)反應(yīng)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09