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

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

其實邏輯也就是循環(huán)遍歷后端返回數(shù)據(jù),根據(jù)key動態(tài)的加載頁面
解決: 使用keep-alive include屬性
1。直接平鋪路有,這個不建議,很多路有菜單都是在側(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ù)時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.js實現(xiàn)插入數(shù)值與表達式的方法分析
這篇文章主要介紹了vue.js實現(xiàn)插入數(shù)值與表達式的方法,結(jié)合實例形式分析了vue.js常見的3種插入數(shù)值實現(xiàn)方式,并總結(jié)了vue.js插值與表達式相關(guān)使用技巧,需要的朋友可以參考下2018-07-07
vue.js中使用echarts實現(xiàn)數(shù)據(jù)動態(tài)刷新功能
這篇文章主要介紹了vue.js中使用echarts實現(xiàn)數(shù)據(jù)動態(tài)刷新功能,需要的朋友可以參考下2019-04-04
使用element組件table表格實現(xiàn)某條件下復選框無法勾選
這篇文章主要介紹了使用element組件table表格實現(xiàn)某條件下復選框無法勾選問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
微信小程序Echarts動態(tài)使用及圖表層級踩坑解決方案
這篇文章主要為大家介紹了微信小程序Echarts動態(tài)使用及圖表層級踩坑解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03

