vue keep-alive列表頁緩存 詳情頁返回上一頁不刷新,定位到之前位置
需求:
商品列表頁面瀏覽,進入商品詳情,點擊返回仍然是之前瀏覽的位置
實現(xiàn):
使用 vue
的 keep-alive
的 include
屬性給組件做動態(tài)緩存,從詳情頁返回不變,從其他頁面進入列表頁則刷新
加需要緩存的列表頁面定義一個數(shù)據(jù)集在 vuex
state:{ pageListArr:[] }
列表頁的 name
為 proList
,詳情頁的 name
為 proDetail
,只有 PageListArr
包含的字段才會被緩存,如 pageListArr.push("proList")
<keep-alive :include="pageListArr"> <router-view></router-view> </keep-alive>
思路:
在頁面初始化前,獲取來源頁面的 name
和要去加載頁面的 name
.
在這里使用全局導航守衛(wèi)
router.beforeEach((to, from, next) => { // 來源頁面name -> from.name // 去往頁面name -> to.name // 如果要跳轉(zhuǎn)的頁面為商品列表,且不是從商品詳情返回或者跳轉(zhuǎn) if(to.name===`proList`&&from.name!==`proDetail`){ pageListArr.push(`proList`) } // 來源為商品頁面返回列表頁面 if(to.name===`proList`&&from.name===`proDetail`){ console.log(`不做處理`) } })
當多個不同的列表頁面需要設(shè)置緩存時,如分類商品列表,活動商品列表
需要先判斷 pageListArr
是否已緩存某些頁面,只有從商情詳情返回已緩存的列表頁才是無刷新,未緩存的列表頁面仍然需要新緩存
總結(jié)
以上所述是小編給大家介紹的vue keep-alive列表頁緩存 詳情頁返回上一頁不刷新,定位到之前位置,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Vite?vue3多頁面入口打包以及部署踩坑實戰(zhàn)
因為我們公司的項目是多頁面應用,不同于傳統(tǒng)單頁面應用,一個包就可以了,下面這篇文章主要給大家介紹了關(guān)于Vite?vue3多頁面入口打包以及部署踩坑的相關(guān)資料,需要的朋友可以參考下2022-05-053分鐘搞定vite項目(vue/react)使用vite-plugin-pwa配置為pwa應用
這篇文章主要介紹了3分鐘搞定vite項目(vue/react)使用vite-plugin-pwa配置為pwa應用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-02-02使用element-ui,el-row中的el-col數(shù)據(jù)為空頁面布局變亂問題
這篇文章主要介紹了使用element-ui,el-row中的el-col數(shù)據(jù)為空頁面布局變亂問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08