使用 keep-alive 的 include 和 exclude 無效的一點注意

最近在使用vue + element-UI開發(fā)的后臺管理項目中按咒,優(yōu)化 keep-alive 的使用方式時遇到了一些問題

優(yōu)化前使用的 if 判斷來控制頁面是否可以緩存对雪,這樣做頁面切換的動畫效果不是太理想

<transition>
  <keep-alive>
    <router-view v-if="$route.meta.keepAlive"></router-view>
  </keep-alive>
</transition>
<transition>
  <router-view v-if="!$route.meta.keepAlive"></router-view>
</transition>

優(yōu)化想使用 include 來控制頁面是否可以緩存赚抡,也可以讓頁面切換起來更流暢些

<transition>
  <keep-alive :include="keepLive">
    <router-view></router-view>
  </keep-alive>
</transition>

<script>
  export default {
    data() {
      return {}
    },
    computed: {
      keepLive() {
        // 此處使用 store getters 計算過的 keepLive 數(shù)組
        //(在 store 拿到 routes,循環(huán)出 meta 里面帶有 keepLive: true 的 route 的 name 放到 keepLive)
        return this.$store.getters.keepLive
      }
    }
  }
</script>

路由里面

export default new Router({
  routes: [
    {
      path: '/a',
      name: 'a',
      component: () => import('src/views/a'),
      meta: { keepAlive: true }
    },
    {
      path: '/b',
      name: 'a',
      component: () => import('src/views/b'),
      meta: { keepAlive: true }
    }
  ]
})

此時肝集,我感覺準備工作已經(jīng)做完了抓谴,可以運行項目看一下效果了虐先。果然怨愤,切換動畫是有了,但是查看控制臺蛹批,頁面竟然沒有了請求撰洗!

使用 keep-alive 頁面的請求我是放在 activated 里面的,此時頁面完全沒有執(zhí)行這里面的代碼

我仔細檢查了代碼腐芍,確保沒有遺漏什么東西差导,但問題始終沒有解決

我去看了vue 官方文檔 api keep-alive,檢測了 vue 版本大于文檔說的 2.1.0猪勇,然后發(fā)現(xiàn)了這句話:

匹配首先檢查組件自身的 name 選項设褐,如果 name 選項不可用,則匹配它的局部注冊名稱 (父組件 components 選項的鍵值)泣刹。匿名組件不能被匹配助析。

當時以為是路由里面那個 name,然后又檢查了所有路由的 name 屬性椅您,發(fā)現(xiàn)也沒遺漏

最后搜到了思否的一個問答vue.js的keep-alive include無效外冀,發(fā)現(xiàn)原來是要在組件頁面中聲明 name 屬性

<transition>
  <div class="a">
    ...
  </div>
</transition>

<script>
  export default {
    name: 'a',
    ...
  }
</script>

最終頁面終于可以正常運行了

也在此做一下筆記,記錄一下遇到的問題

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末掀泳,一起剝皮案震驚了整個濱河市雪隧,隨后出現(xiàn)的幾起案子西轩,更是在濱河造成了極大的恐慌,老刑警劉巖脑沿,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件藕畔,死亡現(xiàn)場離奇詭異,居然都是意外死亡庄拇,警方通過查閱死者的電腦和手機注服,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丛忆,“玉大人,你說我怎么就攤上這事仍秤∠ü睿” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵诗力,是天一觀的道長凰浮。 經(jīng)常有香客問我,道長苇本,這世上最難降的妖魔是什么袜茧? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮瓣窄,結(jié)果婚禮上笛厦,老公的妹妹穿的比我還像新娘。我一直安慰自己俺夕,他們只是感情好裳凸,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著劝贸,像睡著了一般姨谷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上映九,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天梦湘,我揣著相機與錄音,去河邊找鬼件甥。 笑死捌议,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的引有。 我是一名探鬼主播禁灼,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼轿曙!你這毒婦竟也來了弄捕?” 一聲冷哼從身側(cè)響起僻孝,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎守谓,沒想到半個月后穿铆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡斋荞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年荞雏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片平酿。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡凤优,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蜈彼,到底是詐尸還是另有隱情筑辨,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布幸逆,位于F島的核電站棍辕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏还绘。R本人自食惡果不足惜楚昭,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拍顷。 院中可真熱鬧抚太,春花似錦、人聲如沸昔案。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽爱沟。三九已至帅霜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間呼伸,已是汗流浹背身冀。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留括享,地道東北人搂根。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像铃辖,于是被迫代替她去往敵國和親剩愧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容