鍍金池/ 問答/HTML5  Java  HTML/ Vue的SPA應(yīng)用怎么保存前一個(gè)頁面的緩存?

Vue的SPA應(yīng)用怎么保存前一個(gè)頁面的緩存?

比如我從A->B->C->D頁面,則路徑上的A,B,C頁面都被緩存了,這樣當(dāng)D返回的時(shí)候能直接顯示前面界面的內(nèi)容,而不是重新獲取數(shù)據(jù)。但是當(dāng)所有內(nèi)容被返回以后,則A,B,C的緩存全部被釋放。我知道原生的APP能通過多開頁面的方式做到,但是Vue的主流是單頁面應(yīng)用,雖然有個(gè)keep-alive標(biāo)簽,能配合vue-router執(zhí)行緩存操作,但是怎么去銷毀緩存呢?
同時(shí)vue為了提高組件的復(fù)用性,在組件創(chuàng)建以后如果是同一組件跳轉(zhuǎn),該組件是不會(huì)被銷毀的,這時(shí)候該怎么辦?比如客戶進(jìn)入了某品牌的A產(chǎn)品詳情頁,然后下面有該品牌的B產(chǎn)品推薦,用戶如果點(diǎn)擊的話,而他們的路由都是/product/:id,只不過A是/product/A,而B是/product/B,這時(shí)候組件并沒有被銷毀,也就無法執(zhí)行Mounted生命函數(shù),我只有想到內(nèi)容通過watch來更新,但是這樣緩存也就無法生效了,那這又該怎么處理呢?

回答
編輯回答
臭榴蓮

第一個(gè)問題:怎樣銷毀緩存,官網(wǎng)也說了,用keep-alive的時(shí)候,配合activated使用,需要銷毀緩存的時(shí)候,把數(shù)據(jù)清空(數(shù)據(jù)驅(qū)動(dòng)沒毛病吧).
第二個(gè)問題:詳情頁里面的相關(guān)推薦點(diǎn)擊會(huì)再次進(jìn)入詳情頁,只是id變了,頁面沒變,此時(shí)beforeRouteUpdate這個(gè)鉤子會(huì)觸發(fā)。個(gè)人用這個(gè)鉤子是因?yàn)椋狐c(diǎn)相關(guān)推薦切換的時(shí)候會(huì)閃動(dòng)上次sku的內(nèi)容,而且很久。

2017年9月13日 05:37