Vue2.0 實現(xiàn)頁面緩存和不緩存的方式
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 },//當前的.vue文件需要緩存 }, { path: '/notice', component: notice,//當前頁面不需要緩存 }
3、從緩存頁面跳轉(zhuǎn)到不緩存頁面,或者從不緩存頁面跳轉(zhuǎn)到緩存頁面的時候,會發(fā)現(xiàn)watch是不能監(jiān)聽路由的,是因為緩存和不緩存頁面分別在不同的div里面,一個div里面是不可能監(jiān)聽到另一個div的路由的,所有需要把監(jiān)聽的路由都加上緩存(在路由添加 meta: { keepAlive: true }),路由在緩存頁面之間進行跳轉(zhuǎn)的時候,就可以通過監(jiān)聽路由來進行判斷數(shù)據(jù)是否需要更新。
vue keep-alive 緩存后, 進入緩存頁需要再次更新
beforeRouteEnter (to, from, next) { next (vm => { vm.getData() }) }, mounted: function () { this.getData() }
keep-alive 數(shù)據(jù)更新問題
在項目中使用<keep-alive>包含<router-view>實現(xiàn)頁面緩存,加速頁面加載,
同時,這種方式帶來一些弊端,請看如下大神解釋:
****************************************************************************
當引入keep-alive的時候,頁面第一次進入,鉤子的觸發(fā)順序created-> mounted-> activated,退出時觸發(fā)deactivated。
當再次進入(前進或者后退)時,只觸發(fā)activated。
****************************************************************************
這就帶來一個問題,之前在項目中使用mounted在頁面加載時獲取數(shù)據(jù),使用<keep-alive>后方法不再生效,
根據(jù)上面的解釋,將mounted替換為activated即可。
以上這篇Vue2.0 實現(xiàn)頁面緩存和不緩存的方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue 3 + Element Plus樹形表格全選多選及子節(jié)點勾選的問題解決方
在本文中,我們解決了Vue 3和Element Plus樹形表格中的全選、多選、子節(jié)點勾選和父節(jié)點勾選等常見問題,通過逐步實現(xiàn)這些功能,您可以構(gòu)建功能強大且用戶友好的樹形表格組件,以滿足各種數(shù)據(jù)展示需求,對Vue 3 Element Plus樹形表格相關(guān)知識感興趣的朋友一起看看吧2023-12-12Vue2.0實現(xiàn)將頁面中表格數(shù)據(jù)導(dǎo)出excel的實例
本篇文章主要介紹了Vue2.0實現(xiàn)將頁面中表格數(shù)據(jù)導(dǎo)出excel的實例,非常具有實用價值,感興趣的同學(xué)可以了解一下2017-08-08Vue3中關(guān)于路由規(guī)則的props配置方式
這篇文章主要介紹了Vue3中關(guān)于路由規(guī)則的props配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03淺談一下Vue生命周期中mounted和created的區(qū)別
每一個vue實例從創(chuàng)建到銷毀的過程,就是這個vue實例的生命周期,在這個過程中,他經(jīng)歷了從開始創(chuàng)建、初始化數(shù)據(jù)、編譯模板、掛載Dom、渲染→更新→渲染、卸載等一系列過程,那么這些過程中,具體vue做了些啥,我們今天來了解一下2023-05-05解決vue項目報錯webpackJsonp is not defined問題
下面小編就為大家分享一篇解決vue項目報錯webpackJsonp is not defined問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03