vue keep-alive多層級(jí)路由支持問題分析
keep-alive使用
屬性值
1.include - 字符串或正則表達(dá)式。只有名稱匹配的組件會(huì)被緩存。
2.exclude - 字符串或正則表達(dá)式。任何名稱匹配的組件都不會(huì)被緩存。
3.max - 數(shù)字。最多可以緩存多少組件實(shí)例。
注:匹配首先檢查組件自身的 name 選項(xiàng),如果 name 選項(xiàng)不可用,則匹配它的局部注冊(cè)名稱 (父組件 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,緩存的只有第一層的組件
類似于這樣的多層級(jí)組件是無法支持的
我們項(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)的加載頁(yè)面
解決: 使用keep-alive include屬性
1。直接平鋪路有,這個(gè)不建議,很多路有菜單都是在側(cè)邊欄有層級(jí)的
2.這里采用第二種
1)新建MenuMain.vue組件如下
// src/layout/component/MenuMain.vue // 提供多級(jí)菜單的容器 <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多層級(jí)路由支持的文章就介紹到這了,更多相關(guān)vue keep-alive多層級(jí)路由內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue中defineProperty和Proxy的區(qū)別詳解
這篇文章主要介紹了vue中defineProperty和Proxy的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11vue 解決在微信內(nèi)置瀏覽器中調(diào)用支付寶支付的情況
這篇文章主要介紹了vue 解決在微信內(nèi)置瀏覽器中調(diào)用支付寶支付的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11vue轉(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-11vue+el-menu實(shí)現(xiàn)菜單欄無限多層級(jí)分類
這篇文章主要為大家詳細(xì)介紹了vue+el-menu實(shí)現(xiàn)菜單欄無限多層級(jí)分類,文中示例代碼介紹的非常詳細(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-03Vue實(shí)現(xiàn)typeahead組件功能(非常靠譜)
本文給大家分享通過Vue寫一個(gè)挺靠譜的typeahead組件功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-08-08