vue框架搭建之頁面快取方案

2021-10-08 04:33:59 字數 1479 閱讀 5444

首先定義路由的時候在meta中標記哪些頁面需要預設快取

我們使用includes指令來快取部分頁面,需要快取的資料儲存在vuex的store中,方便後面動態操作

vuex的store配置:

// vuex的store配置

export default new vuex.store(,

mutations: );

arr.push(name);

state.keepalivecomponents = arr;

},delkeepalive(state, name) )

state.keepalivecomponents = arr;}},

actions: ,

modules:

})

我們在mounted生命週期中判斷當前頁面是否需要快取,需要快取的加入keepalivecomponents陣列中(為什麼在mounted裡,而不是在router.beforeeach裡,後面再說明)

下面**中判斷name都是通過獲取$route.name判斷的,但是includes指令實際要配置的是元件的name屬性,所以要保證元件中name的配置和路由中name的配置一致

這裡用了全域性混入實現

import vue from 'vue'

import store from '@/store'

vue.mixin(

})}})

通過上面的三步,已經實現在路由中配置部分頁面快取

但是專案當中經常會有這種場景:

「首頁(a)」 跳轉到 「列表頁(b)」,希望 「列表頁(b)」 始終被重新整理不快取

但是從 "列表頁(b)"跳轉到 「詳情頁(c)」,再從 「詳情頁(c)」 返回 「列表頁(b)」 時,希望 「列表頁(b)」 是快取的

首先,列表頁預設快取只需要在根據第一章的在路由中配置meta:,就可以了

然後,要實現從某些頁面進入時不快取,可以在頁面路由導航中操作

beforerouteenter(to, from, next) 

next();

},

注:這就是為什麼上面要在mounted裡面加快取,而不是在router.beforeeach中做,因為頁面的beforerouteenter是在router.beforeeach之後執行的,這樣會導致清快取後下一次的頁面跳轉也沒有被快取

vue單頁應用頁面快取方案

首先我想到的是方案a 方案一 vue的keep alive元件 具體使用如下 這樣所有的頁面都會進行快取。包裹動態元件時,會快取不活動的元件例項,而不是銷毀它們。和 相似,是乙個抽象元件 它自身不會渲染乙個 dom 元素,也不會出現在父元件鏈中。當元件在 內被切換,它的 activated 和 de...

vue 刪除頁面快取 Vue實現頁面快取

在 使用vue開發時,當進行頁面之間的切換時,上乙個頁面將會被銷毀。但是當我們想節省效能以及保留使用者上次操作的結果或避免ajax重複請求的時候,需要把某些特定的頁面快取下來。在vue中,提供了內建元件keep alive 包裹動態元件時,會快取不活動的元件例項,而不是銷毀它們。和相似,是乙個抽象元...

vue框架搭建

npm install registry npm install g vue cli 注意 如果報錯,大概率是因為之前的vue cli版本未解除安裝導致,需要先解除安裝之前的版本,再重新安裝vue cli npm uninstall g vue clivue versionnpm uninstall...