溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Vue2.0 實(shí)現(xiàn)頁面緩存和不緩存的方式

發(fā)布時(shí)間:2020-08-19 13:48:48 來源:腳本之家 閱讀:488 作者:蝸牛速度額 欄目:web開發(fā)

1、在app中設(shè)置需要緩存的div

<keep-alive>//緩存的頁面
  <router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>//不緩存的頁面

2、在路由router.js中設(shè)置.vue頁面是否需要緩存

{
  path: '/home',
  component: home,
  meta: { keepAlive: true },//當(dāng)前的.vue文件需要緩存
},
{
  path: '/notice',
  component: notice,//當(dāng)前頁面不需要緩存
}

3、從緩存頁面跳轉(zhuǎn)到不緩存頁面,或者從不緩存頁面跳轉(zhuǎn)到緩存頁面的時(shí)候,會(huì)發(fā)現(xiàn)watch是不能監(jiān)聽路由的,是因?yàn)榫彺婧筒痪彺骓撁娣謩e在不同的div里面,一個(gè)div里面是不可能監(jiān)聽到另一個(gè)div的路由的,所有需要把監(jiān)聽的路由都加上緩存(在路由添加 meta: { keepAlive: true }),路由在緩存頁面之間進(jìn)行跳轉(zhuǎn)的時(shí)候,就可以通過監(jiān)聽路由來進(jìn)行判斷數(shù)據(jù)是否需要更新。

vue keep-alive 緩存后, 進(jìn)入緩存頁需要再次更新

beforeRouteEnter (to, from, next) {
 next (vm => {
   vm.getData()
 })
},
 mounted: function () {
  this.getData()
}

keep-alive 數(shù)據(jù)更新問題

在項(xiàng)目中使用<keep-alive>包含<router-view>實(shí)現(xiàn)頁面緩存,加速頁面加載,

同時(shí),這種方式帶來一些弊端,請看如下大神解釋:

****************************************************************************

當(dāng)引入keep-alive的時(shí)候,頁面第一次進(jìn)入,鉤子的觸發(fā)順序created-> mounted-> activated,退出時(shí)觸發(fā)deactivated。

當(dāng)再次進(jìn)入(前進(jìn)或者后退)時(shí),只觸發(fā)activated。

****************************************************************************

這就帶來一個(gè)問題,之前在項(xiàng)目中使用mounted在頁面加載時(shí)獲取數(shù)據(jù),使用<keep-alive>后方法不再生效,

根據(jù)上面的解釋,將mounted替換為activated即可。

以上這篇Vue2.0 實(shí)現(xiàn)頁面緩存和不緩存的方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI