這出現(xiàn)的原因是多級(jí)路由導(dǎo)致的,就是router-view嵌套 在層級(jí)不同的router-view中切換tag會(huì)出現(xiàn)緩存數(shù)據(jù)失效的問(wèn)題。目前keep-alive可以有效緩存一級(jí),二級(jí)的路由菜單,3級(jí)以上菜單并不能做到緩存,這里提供一個(gè)解決方案:
十載的安徽網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整安徽建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“安徽網(wǎng)站設(shè)計(jì)”,“安徽網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
在cachedViews中手動(dòng)加上一級(jí)菜單和三級(jí)菜單之間,缺失的二級(jí)菜單的名字,這樣二級(jí)菜單下的組件就會(huì)緩存了
實(shí)列代碼如下:
const _import = require('@/router/_import_prodection');//獲取組件的方法 import {tree} from '@/utils/treeDate' import Layout from '@/views/layout' import EmptyTemplate from '@/views/layout/EmptyTemplate' export function filterAsyncRouter(routerlist) { const routerlists=tree(routerlist ) //獲取路由信息 function getRouter(routerlists){ routerlists.forEach(e => { // 刪除無(wú)用屬性 delete e.catalogCode delete e.catalogOrder delete e.endpoints delete e.fullOrder // delete e.permName // delete e.id // delete e.parentId e.name=e.catalogName if (e.parentId === 0||e.children) {//Layout組件特殊處理 //路徑為空時(shí)會(huì)因?yàn)閡ndefind報(bào)錯(cuò),給個(gè)默認(rèn)值來(lái)解決 e.path = e.url||'nopath' if(e.url.split('/').length>2){ //處理多層級(jí)路的時(shí)候給了一個(gè)空模板 e.component = EmptyTemplate }else{ e.component = Layout } e.icon='setting-fill' } else { e.icon='circle' e.component = _import(e.url) //路徑為空時(shí)會(huì)因?yàn)閡ndefind報(bào)錯(cuò),給個(gè)默認(rèn)值來(lái)解決 e.path = e.url.split('/')[2]||'nopath' } // delete e.parentId delete e.url // if (e.redirect === '') { // delete e.redirect // } if (e.icon !== '' && e.title !== '') { // 配置 菜單標(biāo)題 與 圖標(biāo) e.meta = { // title: e.catalogName 中文名稱 // catalogEngName 英文名稱 title: e.catalogEngName, titleZh:e.catalogName, icon: e.icon } } delete e.catalogName delete e.icon delete e.title // delete e.name//由于名字的存在導(dǎo)致named 錯(cuò)誤 刪掉 if (e.children != null) { // 存在子路由就遞歸 getRouter(e.children) } }) return routerlists } const getRouters=getRouter(routerlists) // return asyncRouterMap return getRouters }
空模板的代碼如下:
<template> <div> <app-main/> </div> </template> <script> import { AppMain} from './components' export default { name:'EmptyTemplate', components:{AppMain} } </script>
tagsViewd.js關(guān)鍵代碼,在cachedViews中加入空模板的name
const state = { visitedViews: [], cachedViews: ['EmptyTemplate'] }
到此這篇關(guān)于keep-alive不能緩存多層級(jí)路由菜單問(wèn)題解決的文章就介紹到這了,更多相關(guān)keep-alive不能多層緩存內(nèi)容請(qǐng)搜索創(chuàng)新互聯(lián)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持創(chuàng)新互聯(lián)!
分享文章:keep-alive不能緩存多層級(jí)路由菜單問(wèn)題解決
分享路徑:http://jinyejixie.com/article12/gpgsgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站內(nèi)鏈、網(wǎng)頁(yè)設(shè)計(jì)公司、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)