keep-alive不能緩存多層級(jí)路由菜單問(wèn)題解決-創(chuàng)新互聯(lián)

這出現(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èn)題,與客戶深入溝通,找到京山網(wǎng)站設(shè)計(jì)與京山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋京山地區(qū)。

在cachedViews中手動(dòng)加上一級(jí)菜單和三級(jí)菜單之間,缺失的二級(jí)菜單的名字,這樣二級(jí)菜單下的組件就會(huì)緩存了


實(shí)列代碼如下:


keep-alive不能緩存多層級(jí)路由菜單問(wèn)題解決

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
}

新聞標(biāo)題:keep-alive不能緩存多層級(jí)路由菜單問(wèn)題解決-創(chuàng)新互聯(lián)
本文地址:http://www.muchs.cn/article10/dpjjgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、網(wǎng)站改版、網(wǎng)站排名、企業(yè)網(wǎng)站制作動(dòng)態(tài)網(wǎng)站、企業(yè)建站

廣告

聲明:本網(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)

網(wǎng)站托管運(yùn)營(yíng)