keep-alive router-view完美實現(xiàn)vue路由緩存vue組件緩存的方案 ??????

項目需求

部分路由頁面需要被緩存,可以在特定時期取消緩存裸删,比方說登陸過期

解決思路

  1. 利用keep-alive
  2. 結合vuex可以動態(tài)決定哪些路由頁面(路由頁面其實也是組件)需要被緩存

解決代碼

1. 入口文件

<template>
  <div id="app">
    <keep-alive :include="$store.state.keepAliveList">
      <router-view />
    </keep-alive>
  </div>
</template>

2. vuex store

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    // 需要緩存的組件
    keepAliveList: [],
  },
  mutations: {},
  actions: {},
  modules: {}
})

3. 需要被緩存的頁面代碼


<template>
  <div>
  </div>
</template>

<script>
export default {
 // 起個規(guī)范的名字
  name:'data-check',
  components: {
  },
  data() {
    return {
    }
  },
  computed: {},
 // 初始化時像state增加自己暴匠,由于被緩存了,只會執(zhí)行一次
  mounted() {
    this.$store.state.keepAliveList.push("data-check");
  },
  methods: {}
};
</script>
<style lang="scss" scoped>
</style>

4. 登錄失效取消緩存

import Vue from "vue";

import axios from "axios";
import router from '../router'
import store from '../store'

Vue.prototype.$http = axios;

// Add a request interceptor
axios.interceptors.request.use(
  function (config) {
    // Do something before request is sent
    return config;
  },
  function (error) {
    // Do something with request error
    return Promise.reject(error);
  }
);

// Add a response interceptor
axios.interceptors.response.use(
  function (response) {
    console.log(response.data);
    if (response.data.status !== "1") {
      
      if (response.data.status === "10001" && response.data.message === "TOKEN信息沒有提供") {
        store.state.keepAliveList = [];
      // 跳轉到登錄頁
        router.replace({
          name: "bind"
        }).catch(() => {});
      } 
      }
    }
    // Any status code that lie within the range of 2xx cause this function to trigger
    // Do something with response data
    return response.data;
  },
  function (error) {
    // Any status codes that falls outside the range of 2xx cause this function to trigger
    // Do something with response error
    return Promise.reject(error);
  }
);
?? 碼字不易卜高,別忘點贊??????????????????????
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末侥祭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子齐婴,更是在濱河造成了極大的恐慌油猫,老刑警劉巖稠茂,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柠偶,死亡現(xiàn)場離奇詭異,居然都是意外死亡睬关,警方通過查閱死者的電腦和手機诱担,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來电爹,“玉大人蔫仙,你說我怎么就攤上這事∝ぢ幔” “怎么了摇邦?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長屎勘。 經(jīng)常有香客問我施籍,道長,這世上最難降的妖魔是什么概漱? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任丑慎,我火速辦了婚禮,結果婚禮上瓤摧,老公的妹妹穿的比我還像新娘竿裂。我一直安慰自己,他們只是感情好照弥,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布腻异。 她就那樣靜靜地躺著,像睡著了一般这揣。 火紅的嫁衣襯著肌膚如雪捂掰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天曾沈,我揣著相機與錄音这嚣,去河邊找鬼。 笑死塞俱,一個胖子當著我的面吹牛姐帚,可吹牛的內容都是我干的。 我是一名探鬼主播障涯,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼罐旗,長吁一口氣:“原來是場噩夢啊……” “哼膳汪!你這毒婦竟也來了?” 一聲冷哼從身側響起九秀,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤遗嗽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后鼓蜒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痹换,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年都弹,在試婚紗的時候發(fā)現(xiàn)自己被綠了娇豫。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡畅厢,死狀恐怖冯痢,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情框杜,我是刑警寧澤浦楣,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站咪辱,受9級特大地震影響振劳,放射性物質發(fā)生泄漏。R本人自食惡果不足惜梧乘,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一澎迎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧选调,春花似錦夹供、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至弦聂,卻和暖如春鸟辅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背莺葫。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工匪凉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捺檬。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓再层,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子聂受,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內容