vue keep-alive列表頁緩存 詳情頁返回上一頁不刷新,定位到之前位置
需求:
商品列表頁面瀏覽,進(jìn)入商品詳情,點擊返回仍然是之前瀏覽的位置

實現(xiàn):
使用 vue 的 keep-alive 的 include 屬性給組件做動態(tài)緩存,從詳情頁返回不變,從其他頁面進(jìn)入列表頁則刷新
加需要緩存的列表頁面定義一個數(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 .

在這里使用全局導(dǎo)航守衛(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(`不做處理`)
}
})
當(dāng)多個不同的列表頁面需要設(shè)置緩存時,如分類商品列表,活動商品列表
需要先判斷 pageListArr 是否已緩存某些頁面,只有從商情詳情返回已緩存的列表頁才是無刷新,未緩存的列表頁面仍然需要新緩存

總結(jié)
以上所述是小編給大家介紹的vue keep-alive列表頁緩存 詳情頁返回上一頁不刷新,定位到之前位置,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Vite?vue3多頁面入口打包以及部署踩坑實戰(zhàn)
因為我們公司的項目是多頁面應(yīng)用,不同于傳統(tǒng)單頁面應(yīng)用,一個包就可以了,下面這篇文章主要給大家介紹了關(guān)于Vite?vue3多頁面入口打包以及部署踩坑的相關(guān)資料,需要的朋友可以參考下2022-05-05
3分鐘搞定vite項目(vue/react)使用vite-plugin-pwa配置為pwa應(yīng)用
這篇文章主要介紹了3分鐘搞定vite項目(vue/react)使用vite-plugin-pwa配置為pwa應(yīng)用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-02-02
使用element-ui,el-row中的el-col數(shù)據(jù)為空頁面布局變亂問題
這篇文章主要介紹了使用element-ui,el-row中的el-col數(shù)據(jù)為空頁面布局變亂問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08

