vue再次進入頁面不會再次調用接口請求


在vue實際項目中,很多時候會在mounted或者created請求數據接口然后渲染到頁面上,但是這兩個生命周期都是只會在第一次進入頁面后執行,再次進入該頁面時,由於vue-router的機制,會緩存已經加載過的頁面數據這樣會大大提高效率,所以我們使用$router.push等跳轉操作時會發現已經在其他頁面上修改的數據,跳轉到這個頁面,修改的數據並沒有變化。

實際例子:a頁面展示了一組數據,需要跳到另一個頁面修改其中的一項數據然后用router.push再跳轉回來。然而實際跳轉回來a頁面的數據並沒有改變。這里我們就需要用到actived這個生命周期了:下面是官網api的解釋:

可以看出axtived需要配合keep-alive使用

我們就需要再項目的router-view加上keep-alive,例如:

然后在a頁面加上actived生命周期:

進入該頁面就會觸發actived,然后執行數據請求接口,頁面數據就進行了更新。

created():在創建vue對象時,當html渲染之前就觸發;但是注意,全局vue.js不強制刷新或者重啟時只創建一次,也就是說,created()只會觸發一次;

activated():在vue對象存活的情況下,進入當前存在activated()函數的頁面時,一進入頁面就觸發;可用於初始化頁面數據等


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM