這篇文章將為大家詳細講解有關Vue如何實現前進刷新后退不刷新的效果,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
創新互聯公司主營龍海網站建設的網絡公司,主營網站建設方案,重慶APP軟件開發,龍海h5小程序制作搭建,龍海網站營銷推廣歡迎龍海等地區企業咨詢需求一:
在一個列表頁中,第一次進入的時候,請求獲取數據。
點擊某個列表項,跳到詳情頁,再從詳情頁后退回到列表頁時,不刷新。
也就是說從其他頁面進到列表頁,需要刷新獲取數據,從詳情頁返回到列表頁時不要刷新。
解決方案在 app.vue 設置:
<keep-alive include="list"> <router-view/> </keep-alive>
假設列表頁為 list.vue ,詳情頁為 detail.vue ,這兩個都是子組件。
我們在 keep-alive 添加列表頁的名字,緩存列表頁。
然后在列表頁的 created 函數里添加ajax請求,這樣只有第一次進入到列表頁的時候才會請求數據,當從列表頁跳到詳情頁,再從詳情頁回來的時候,列表頁就不會刷新。
這樣就可以解決問題了。
需求二:
在需求一的基礎上,再加一個要求:
可以在詳情頁中刪除對應的列表項,這時返回到列表頁時需要刷新重新獲取數據。
我們可以在路由配置文件上對 detail.vue 增加一個 meta 屬性。
{ path:'/detail', name:'detail', component:() => import('../view/detail.vue'), meta:{ isRefresh:true } }
這個 meta 屬性,可以在詳情頁中通過 this.$route.meta.isRefresh 來讀取和設置。 設置完這個屬性,還要在 App.vue 文件里設置 watch 一下 $route 屬性。
watch:{ $route(to, from) { const fname = from.name const tname = to.name if (from.meta.isRefresh || (fname != 'detail' && tname == 'list')) { // 在這里重新請求數據 from.meta.isRefresh = false } } }
這樣就不需要在列表頁的 created 函數里用 ajax 來請求數據了,統一放在 App.vue 里來處理。
觸發請求數據有兩個條件:
從其他頁面(除了詳情頁)進來列表時,需要請求數據。
從詳情頁返回到列表頁時,如果詳情頁 meta 屬性中的 isRefresh 為 true ,也需求重新請求數據。
當我們在詳情頁中刪除了對應的列表項時,就可以將詳情頁 meta 屬性中的 isRefresh 設為 true 。這時再返回到列表頁,頁面會重新刷新。
vue是什么Vue是一套用于構建用戶界面的漸進式JavaScript框架,Vue與其它大型框架的區別是,使用Vue可以自底向上逐層應用,其核心庫只關注視圖層,方便與第三方庫和項目整合,且使用Vue可以采用單文件組件和Vue生態系統支持的庫開發復雜的單頁應用。
關于“Vue如何實現前進刷新后退不刷新的效果”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
當前文章:Vue如何實現前進刷新后退不刷新的效果-創新互聯
文章起源:http://vcdvsql.cn/article14/hoode.html
成都網站建設公司_創新互聯,為您提供標簽優化、網站設計、品牌網站設計、用戶體驗、靜態網站、網站內鏈
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯