vue通過(guò)路由實(shí)現(xiàn)頁(yè)面刷新的方法
vue 開發(fā)微信商城項(xiàng)目,
需求如下:
購(gòu)物車頁(yè)面跳轉(zhuǎn)到詳情頁(yè),購(gòu)物車頁(yè)面包含了多個(gè)組件,點(diǎn)擊結(jié)算跳轉(zhuǎn)到訂單頁(yè)面,從訂單返回時(shí),購(gòu)物車頁(yè)面沒(méi)有刷新,由于購(gòu)物車組件之間通過(guò)bus實(shí)現(xiàn)事件傳遞,頁(yè)面跳轉(zhuǎn)(非物理返回)無(wú)法觸發(fā)beforeDestroy方法,則無(wú)法再此方法中銷毀bus方法
beforeDestroy() { this.$root.Bus.$off('judge') this.$root.Bus.$off('refreshDetail') this.$root.Bus.$off('clearAll') this.$root.Bus.$off('upDataCart') },
無(wú)奈,通過(guò)beforeRouteLeave來(lái)銷毀
beforeRouteLeave(to, from, next) { this.$root.Bus.$off('judge') this.$root.Bus.$off('refreshDetail') this.$root.Bus.$off('clearAll') this.$root.Bus.$off('upDataCart') next() },
同樣的,物理返回時(shí)無(wú)法觸發(fā)購(gòu)物車的created方法,則無(wú)法觸發(fā)bus的$on方法
歸根結(jié)底,物理返回時(shí)刷新頁(yè)面則可以處理此問(wèn)題
思路一
beforeRouteEnter(to, from, next) { next(()=>{ window.location.reload() }) },
此方法理論貌似可行,但是頁(yè)面會(huì)狂刷不止,
最后采用了思路二,貌似是一個(gè)很low的方法,但是解決了實(shí)際問(wèn)題
this.$router.replace({ name: 'cart' })// 處理返回刷新問(wèn)題 this.$router.push({ path: '/order/order_sure', query: { sku: sku_str, cart: 'cart' } })
頁(yè)面跳轉(zhuǎn)前先通過(guò)路由replace到當(dāng)前頁(yè),再跳轉(zhuǎn)到訂單頁(yè)面,返回可以自動(dòng)刷新了,這個(gè)方法并不理想,如果您有更好的方法,歡迎分享
有專門的方法處理此問(wèn)題,在購(gòu)物車頁(yè)面,添加如下代碼即可
// 銷毀組件,返回刷新 deactivated() { this.$destroy() },
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue操作下拉選擇器獲取選擇的數(shù)據(jù)的id方法
今天小編就為大家分享一篇vue操作下拉選擇器獲取選擇的數(shù)據(jù)的id方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08element-vue實(shí)現(xiàn)網(wǎng)頁(yè)鎖屏功能(示例代碼)
這篇文章主要介紹了element-vue實(shí)現(xiàn)網(wǎng)頁(yè)鎖屏功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11關(guān)于element-ui?select?下拉框位置錯(cuò)亂問(wèn)題解決
這篇文章主要介紹了關(guān)于element-ui?select?下拉框位置錯(cuò)亂問(wèn)題解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09詳解vue axios用post提交的數(shù)據(jù)格式
這篇文章主要介紹了詳解vue axios用post提交的數(shù)據(jù)格式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08Vue封裝DateRangePicker組件流程詳細(xì)介紹
在后端管理項(xiàng)目中使用vue來(lái)進(jìn)行前端項(xiàng)目的開發(fā),但我們都知道Vue實(shí)際上無(wú)法監(jiān)聽(tīng)由第三方插件所引起的數(shù)據(jù)變化。也無(wú)法獲得JQuery這樣的js框架對(duì)元素值的修改的。而日期控件daterangepicker又基于JQuery來(lái)實(shí)現(xiàn)的2022-11-11