您好,登錄后才能下訂單哦!
這篇文章主要介紹了vue keep-alive多層級路由支持問題怎么解決的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇vue keep-alive多層級路由支持問題怎么解決文章都會有所收獲,下面我們一起來看看吧。
屬性值
1.include - 字符串或正則表達式。只有名稱匹配的組件會被緩存。
2.exclude - 字符串或正則表達式。任何名稱匹配的組件都不會被緩存。
3.max - 數字。最多可以緩存多少組件實例。
注:匹配首先檢查組件自身的 name 選項,如果 name 選項不可用,則匹配它的局部注冊名稱 (父組件 components 選項的鍵值)。匿名組件不能被匹配
會執行的兩個生命周期
activated(){ console.log("keep進入") if(this.activeName!='1'){ this.activeName='1' } }, deactivated(){ console.log("keep離開") }
問題:vue 內置的緩存組件keep-alive,緩存的只有第一層的組件
類似于這樣的多層級組件是無法支持的
我們項目里的路由還是動態的,其實跟上面一樣 主要處理
item.component = { render: (e) => e(‘router-view’) }
這個是router-view容器 當你這一層不需要組建的時候 用的
其實邏輯也就是循環遍歷后端返回數據,根據key動態的加載頁面
1。直接平鋪路有,這個不建議,很多路有菜單都是在側邊欄有層級的
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)將此容器取代處理數據時render的 router-view 容器
3)include 數組始終都有 允許MenuMain緩存
cachedViews: ['MenuMain']
cachedViews緩存數組 用在 menuMain。vue中 和 你的入口 app.vue router-view
關于“vue keep-alive多層級路由支持問題怎么解決”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“vue keep-alive多層級路由支持問題怎么解決”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。