1. 程式人生 > >關於vue後退不刷新,並緩存原有狀態,前進刷新並請求新數據

關於vue後退不刷新,並緩存原有狀態,前進刷新並請求新數據

體驗 ips nbsp 導致 方式 dea 數據請求 關於 推薦

在實現 頁面前進刷新,後退頁面不刷新的vue方法

在app.vue 裏的:

技術分享圖片

在router 路由裏定義如下:

技術分享圖片

在路由裏定義一個meta的值,設置一個值,來判斷是否要緩存該組件

當然我們可以在具體頁面裏控制是否要緩存該組件

技術分享圖片

通過路由,或者是路由名字來判斷是回退還是前進,來設置meta的值,讓後頁面是否刷新;當頁面使用了keep-alive 的時候,頁面的組件是被緩存下來的。此時就不會 觸發created這個鉤子函數;當使用keep-alive 的時候,會觸發activated,deactivated;

如果是沒有使用keep-alive ,就不會觸發activated,deactivated 這兩個鉤子函數,但是會觸發其余的鉤子(created,mounted等),如果使用了,就會觸發,但是不會觸發activated,deactivated 這兩個鉤子函數,一個是進入的時候觸發activated這個鉤子,一個是離開的時候觸發deactivated 這個鉤子;

技術分享圖片

tips:我們也可以通過下面兩個鉤子函數,來實現頁面的loading效果(vux也是這樣做的);

技術分享圖片

原因:vuejs推薦加載各組件的方式,這樣vuejs打包的體積不會很大,組件是按需加載;但是導致的問題是,你需要把該組件的js加載完,才能開始loading(請求數據並且你設置了loading),這個是有時間差的,頁面會出現短暫的空白,體驗不是很好,我們可以通過上面倆個鉤子函數,在進入下一個頁面的時候,就開始loading,頁面開始跳轉,就開始了loading,當頁面的js,css加載完的時候,數據請求完,loading可以手動關閉;

技術分享圖片

關於vue後退不刷新,並緩存原有狀態,前進刷新並請求新數據