vue實(shí)現(xiàn)頁面緩存功能
本文實(shí)例為大家分享了vue實(shí)現(xiàn)頁面緩存功能的具體代碼,供大家參考,具體內(nèi)容如下
主要利用keep-alive實(shí)現(xiàn)從列表頁跳轉(zhuǎn)到詳情頁,然后點(diǎn)擊返回時(shí),頁面緩存不用重新請(qǐng)求資源。
一、在router里配置路由
在meta里定義頁面是否需要緩存
import Vue from "vue"; import Router from "vue-router"; // 避免到當(dāng)前位置的冗余導(dǎo)航 const originalPush = Router.prototype.push Router.prototype.push = function push(location) { return originalPush.call(this, location).catch(err => err) } Vue.use(Router); export default new Router({ base: '', routes: [{ path: "/", name: "index", component: () => import("@/layout"), redirect: '/login', children: [ { path: 'dutySheet', name: 'dutySheet', component: () => import("@/pages/Dashboard/DutySheet") }, { path: 'searchWord', name: 'searchWord', component: () => import("@/pages/dailyReportManage/searchWord/index"), meta: { keepAlive: true // 需要緩存頁面 } }, // 匹配維護(hù) { path: "troopAction", name: "troopAction", component: () => import("@/pages/Dashboard/TroopAction"), meta: { keepAlive: false// 不需要緩存 } }, ] }, ] });
二、配置APP.vue
使用keep-alive來進(jìn)行緩存
<keep-alive> <router-view v-if="$route.meta.keepAlive"></router-view> </keep-alive> <router-view v-if="!$route.meta.keepAlive"></router-view>
三、點(diǎn)擊返回按鈕時(shí)調(diào)用this.$router.back()方法就可以了
// 返回 bacKBnt(){ this.$router.back() },
四、清除緩存
只針對(duì)跳轉(zhuǎn)到"exhibitionWord"或"exhibitionWeekWord"頁面才進(jìn)行緩存,跳轉(zhuǎn)其他頁面不用緩存。
beforeRouteLeave(to, from, next) { if (to.name == 'exhibitionWord' || to.name == 'exhibitionWeekWord') { // 需要緩存的路由name from.meta.keepAlive = true next() }else{ from.meta.keepAlive = false next() } },
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
如何解決ElementUI導(dǎo)航欄重復(fù)點(diǎn)菜單報(bào)錯(cuò)問題
這篇文章主要介紹了如何解決ElementUI導(dǎo)航欄重復(fù)點(diǎn)菜單報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07解決Idea、WebStorm下使用Vue cli腳手架項(xiàng)目無法使用Webpack別名的問題
這篇文章主要介紹了解決Idea、WebStorm下使用Vue cli腳手架項(xiàng)目無法使用Webpack別名的問題,需要的朋友可以參考下2019-10-10Vue為什么要謹(jǐn)慎使用$attrs與$listeners
這篇文章主要介紹了Vue為什么要謹(jǐn)慎使用$attrs與$listeners,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08vue路由組件路徑如何用變量形式動(dòng)態(tài)引入
這篇文章主要介紹了vue路由組件路徑如何用變量形式動(dòng)態(tài)引入問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06vue微信分享 vue實(shí)現(xiàn)當(dāng)前頁面分享其他頁面
這篇文章主要為大家詳細(xì)介紹了vue微信分享功能,vue實(shí)現(xiàn)當(dāng)前頁面分享其他頁面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Vue狀態(tài)機(jī)的開啟與停止操作詳細(xì)講解
Vuex是專門為Vuejs應(yīng)用程序設(shè)計(jì)的狀態(tài)管理工具,這篇文章主要給大家介紹了關(guān)于Vuex狀態(tài)機(jī)快速了解與實(shí)例應(yīng)用的相關(guān)資料,需要的朋友可以參考下2023-01-01vue?目錄樹的展開與關(guān)閉的實(shí)現(xiàn)
Vue作為一款流行的前端框架,提供了一種數(shù)據(jù)驅(qū)動(dòng)的方式來實(shí)現(xiàn)目錄樹,本文主要介紹了vue?目錄樹的展開與關(guān)閉的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11