詳解關於Vue2.0路由開啟keep-alive時需要注意的地方
Vue2.0 做應用必有的需求就是頁面資料需要做快取,不用每次進入頁面都要把資料重新請求一遍,每次頁面切換都有段等待資料相應時間,這個使用者體驗可想有多麼蛋疼,所以頁面快取是必要的,啥時候需要更新頁面資料呢?可以監聽狀態變化,或者是手動下拉重新整理重新請求資料,醬紫,我想使用者體驗會做的更好。
keep-alive的作用以及好處
在做電商有關的專案中,當我們第一次進入列表頁需要請求一下資料,當我從列表頁進入詳情頁,詳情頁不快取也需要請求下資料,然後返回列表頁,這時候我們使用keep-alive來快取元件,防止二次渲染,這樣會大大的節省效能。
廢話不多說直接上碼,一般是在 src/App.vue 設定開啟 keep-alive 實現頁面資料快取:
1 2 3 4 5 |
<template>
<keep-alive>
<router-view></router-view>
</keep-alive>
</template>
|
列舉幾個常用的 hook 方法,如下:
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
export
default
{
data() {
return
{
}
},
created:
function
() {
console.log(
"the hook of created is done!"
);
},
mounted:
function
() {
console.log(
"the hook of mounted is done!"
);
},
activated:
function
() {
console.log(
"the hook of activated is done!"
);
},
deactivated:
function
() {
console.log(
"the hook of deactivated is done!"
);
}
}
|
首次進來 hook 的觸發順序 created-> mounted-> activated,退出時觸發 deactivated:
// 控制檯列印結果
the hook of created is done!
the hook of mounted is done!
the hook of activated is done!
the hook of deactivated is done!
二次進來 hook 只觸發 activated,退出時觸發 deactivated:
// 控制檯列印結果
the hook of activated is done!
the hook of deactivated is done!
所以這就是為什麼有些人開啟 keep-alive 之後,created 和 mounted 註冊的 pageInt 方法不觸發的原因了,因為 keep-alive 把它們遮蔽了,也就是把資料快取起來,所以不再請求。
如果你的某些頁面一定要實時請求,你可以直接在 activated 這個 hook 做 pageInt,就不要在 created 和 mounted 上面註冊 pageInt 方法了。
還有你可以選擇性 pageInt,比如監聽狀態變化,包括但不限於監聽路由的變化,某引數的變化,某時間節點的變化等等。
中科院新科海學校軟體測試視訊 下載地址:百度網盤下載
效能測試與LoadRunner基礎培訓 視訊教程 教學視訊 百度網盤下載(價值1580元) 下載地址:百度網盤下載
【全6套視訊】軟體測試系列教程 下載地址:百度網盤下載
測試基礎篇/軟體測試教程入門 下載地址:百度網盤下載
實下最流行的測試框架Selenium視訊教程 Web應用程式測試的工具學習視訊教程 下載地址:百度網盤下載
煉數成金 快速上手Jmeter效能測試工具 軟體壓力測試學習 視訊教程 教學視訊 下載地址:百度網盤下載
中游學院Swift語言視訊教程swift培訓視訊 101課 下載地址:百度網盤下載
IOS開發進階視訊教程 63課 下載地址:百度網盤下載
IOS SWIFT網路程式設計CFNetwork視訊教程 9課 附原始碼 下載地址:百度網盤下載
IOS開發之Swift開發語言快速入門座標系計算機語言學習法視訊教程 共30課 附原始碼 下載地址:百度網盤下載
2017IOS效能優化工具Instruments使用視訊教程 4課 附講義 下載地址:百度網盤下載
IOS基礎到就業培訓班 40課 下載地址:百度網盤下載
麥子學院 IOS工程師培訓視訊教程 下載地址:百度網盤下載
IOS動畫程式設計UIViewAnimation開發視訊教程 10課 附思維導圖與原始碼 下載地址:百度網盤下載
IOS地理位置及定位系統MapKit開發視訊教程 15課 附原始碼 下載地址:百度網盤下載
IOS多執行緒及非同步任務處理NSThread與TaskQueue視訊教程 12課 附課件與原始碼 下載地址:百度網盤下載
IOS多媒體影音CoreAudio程式設計視訊教程 14課 附原始碼課件 下載地址:百度網盤下載
IOS8 App開發快速入門視訊教程與案例分享 20課 附講義 下載地址:百度網盤下載
IOS教程UIKit包表格集合與控制器使用視訊教程 27課 附原始碼 下載地址:百度網盤下載
IOS9教程完整高清版 包含原始碼課件 練習題 下載地址:百度網盤下載