vue keep-alive多層級路由支持問題分析
keep-alive使用
屬性值
1.include - 字符串或正則表達(dá)式。只有名稱匹配的組件會(huì)被緩存。
2.exclude - 字符串或正則表達(dá)式。任何名稱匹配的組件都不會(huì)被緩存。
3.max - 數(shù)字。最多可以緩存多少組件實(shí)例。
注:匹配首先檢查組件自身的 name 選項(xiàng),如果 name 選項(xiàng)不可用,則匹配它的局部注冊名稱 (父組件 components 選項(xiàng)的鍵值)。匿名組件不能被匹配
會(huì)執(zhí)行的兩個(gè)生命周期
activated(){
console.log("keep進(jìn)入")
if(this.activeName!='1'){
this.activeName='1'
}
},
deactivated(){
console.log("keep離開")
}問題:vue 內(nèi)置的緩存組件keep-alive,緩存的只有第一層的組件
類似于這樣的多層級組件是無法支持的

我們項(xiàng)目里的路由還是動(dòng)態(tài)的,其實(shí)跟上面一樣 主要處理
item.component = { render: (e) => e(‘router-view’) }
這個(gè)是router-view容器 當(dāng)你這一層不需要組建的時(shí)候 用的

其實(shí)邏輯也就是循環(huán)遍歷后端返回?cái)?shù)據(jù),根據(jù)key動(dòng)態(tài)的加載頁面
解決: 使用keep-alive include屬性
1。直接平鋪路有,這個(gè)不建議,很多路有菜單都是在側(cè)邊欄有層級的
2.這里采用第二種
1)新建MenuMain.vue組件如下
// src/layout/component/MenuMain.vue
// 提供多級菜單的容器
<template>
<keep-alive :include="cachedViews">
<router-view :key="key" />
</keep-alive>
</template>
<script>
export default {
name: 'MenuMain', // 必須命名
computed: {
cachedViews() {
return this.$store.state.tagsView.cachedViews
},
key() {
return this.$route.path
}
}
}
</script>2)將此容器取代處理數(shù)據(jù)時(shí)render的 router-view 容器

3)include 數(shù)組始終都有 允許MenuMain緩存
cachedViews: ['MenuMain']
cachedViews緩存數(shù)組 用在 menuMain。vue中 和 你的入口 app.vue router-view
到此這篇關(guān)于vue keep-alive多層級路由支持的文章就介紹到這了,更多相關(guān)vue keep-alive多層級路由內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue中defineProperty和Proxy的區(qū)別詳解
這篇文章主要介紹了vue中defineProperty和Proxy的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
vue 解決在微信內(nèi)置瀏覽器中調(diào)用支付寶支付的情況
這篇文章主要介紹了vue 解決在微信內(nèi)置瀏覽器中調(diào)用支付寶支付的情況,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
vue轉(zhuǎn)electron項(xiàng)目及解決使用fs報(bào)錯(cuò):Module?not?found:?Error:?Can&apo
這篇文章主要給大家介紹了關(guān)于vue轉(zhuǎn)electron項(xiàng)目及解決使用fs報(bào)錯(cuò):Module?not?found:?Error:?Can‘t?resolve?‘fs‘?in的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
vue+el-menu實(shí)現(xiàn)菜單欄無限多層級分類
這篇文章主要為大家詳細(xì)介紹了vue+el-menu實(shí)現(xiàn)菜單欄無限多層級分類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
啟動(dòng)myvue報(bào)錯(cuò)npm?ERR!?code?ENOENT?npm?ERR!?syscall?open的解
這篇文章主要介紹了啟動(dòng)myvue報(bào)錯(cuò)npm?ERR!?code?ENOENT?npm?ERR!?syscall?open的解決辦法,文中給出了詳細(xì)的解決方法,并通過圖文結(jié)合的方式介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03
Vue實(shí)現(xiàn)typeahead組件功能(非??孔V)
本文給大家分享通過Vue寫一個(gè)挺靠譜的typeahead組件功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-08-08

