国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - vue.js - 解決基于 keep-alive 的后臺多級路由緩存問題

解決基于 keep-alive 的后臺多級路由緩存問題

2021-12-16 15:41一個不太知名的程序員 vue.js

這篇文章主要介紹了解決基于 keep-alive 的后臺多級路由緩存問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考

用過 vue-element-admin 的同學一定很清楚,路由的配置直接關系側邊欄導航菜單的展示,也得益于這種設計思路,幾乎大部分后臺框架都采用這個方案,當然也包括了我寫的 Fantastic-admin 這個中后臺框架。

但這個方案有個明顯的問題,就是為了實現多級側邊欄導航菜單,則需要將路由配置成多級嵌套的形式,一旦超過兩級,達到三級甚至更多級,就需要增加一個空布局頁面(Empty.vue)用來給 component 使用,僅僅是為了生成層級菜單。此時就出現了一個問題,因為 keep-alive 是在 Layout 上處理的,所以超過兩級以上的路由都會變得難以處理,也沒有一個相對完美的解決方案。

在思考并解決這個問題之前,我們先來看下頁面大致結構:

?
1
2
3
4
5
6
7
8
9
+------------------------------+
| Layout            |
| +------------------------+ |
| | Empty         | |
| | +------------------+ | |
| | | Page       | | |
| | +------------------+ | |
| +------------------------+ |
+------------------------------+

首先 keep-alive 是在 Layout 上進行處理,如果不緩存 Empty ,則 Empty 下面的頁面將無法被緩存,如果緩存 Empty ,又會導致 Empty 里面的所有頁面都被緩存,無法按需清除,相信接觸過的同學肯定感同身受其中的大坑。

解決基于 keep-alive 的后臺多級路由緩存問題

解決思路

其實有一個相對清晰簡單的解決思路,既然緩存二級路由是沒問題,而超過二級的中間層級頁面也是沒太大意義的,那為什么不將路由直接處理成二級,這樣頁面顯示也就是二級的結構。

?
1
2
3
4
5
6
7
8
9
+------------------------------+        +------------------------------+
| Layout            |        | Layout.vue          |
| +------------------------+ |        | +------------------------+ |
| | Empty         | | +----------> | | Page          | |
| | +------------------+ | |        | |            | |
| | | Page       | | |        | |            | |
| | +------------------+ | |        | |            | |
| +------------------------+ |        | +------------------------+ |
+------------------------------+        +------------------------------+

這里需要注意,路由配置還是保持多級嵌套的形式,而這個配置并非最終注冊使用的路由,僅僅是提供側邊欄導航菜單使用,同時再生成一份用于動態注冊路由的數據,圖例如果沒看明白的話,可以看下面兩組數據。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// 原始數據(用于側邊欄導航菜單)
{
  path: '/users',
  meta: {
    title: '用戶管理'
  },
  children: [
    {
      path: 'clients',
      meta: {
        title: '客戶管理'
      },
      children: [
        {
          path: 'list',
          meta: {
            title: '客戶列表'
          }
        },
        {
          path: 'detail',
          meta: {
            title: '客戶詳情'
          }
        }
      ]
    }
  ]
}
 
// 處理后數據(用于動態注冊路由)
{
  path: '/users',
  meta: {
    title: '用戶管理'
  },
  children: [
    {
      path: 'clients/list',
      meta: {
        title: '客戶列表'
      }
    },
    {
      path: 'clients/detail',
      meta: {
        title: '客戶詳情'
      }
    }
  ]
}

通過一個遞歸函數就可以處理好路由的數據,但這還不夠,因為還需要處理面包屑導航。

原有的面包屑導航是通過 $route.matched 可以獲取到嵌套路由每一層級的信息,而當路由被處理成兩級后,也就無法通過 $route.matched 進行顯示了,所以在處理路由數據的同時,也需要處理面包屑導航的信息。大致最終會處理成這樣:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
  path: '/users',
  meta: {
    title: '用戶管理'
  },
  children: [
    {
      path: 'clients/list',
      meta: {
        title: '客戶列表',
        breadCrumb: [
          { path: '/users', title: '用戶管理' },
          { path: 'clients', title: '客戶管理' },
          { path: 'list', title: '客戶列表' }
        ]
      }
    },
    {
      path: 'clients/detail',
      meta: {
        title: '客戶詳情',
        breadCrumb: [
          { path: '/users', title: '用戶管理' },
          { path: 'clients', title: '客戶管理' },
          { path: 'detail', title: '客戶詳情' }
        ]
      }
    }
  ]
}

這樣一來,通過 $route.meta.breadcrumb 就可以獲取任意某個路由的完整面包屑導航信息了。最終效果如下:

解決基于 keep-alive 的后臺多級路由緩存問題

通過圖片可以看到,這種方案也還是有一定的限制,就是路由被處理成二級后,多級嵌套關系不存在了,也就是不能在 Empty 里寫任何代碼,因為都會被忽略掉,只保留頂級和最深層的底級兩個路由。

當然通過實際情況考慮,這種限制并沒有大問題,因為在后臺系統里,本身模塊相對獨立,即便側邊欄導航菜單是嵌套層級關系的,在右側內容展示區域,幾乎都是獨立模塊展示,無需嵌套。

實例代碼

本文主要是討論實現思路,相關代碼可在 Fantastic-admin 里查看,核心代碼在這,點擊查看。

到此這篇關于解決基于 keep-alive 的后臺多級路由緩存問題的文章就介紹到這了,更多相關 keep-alive多級路由緩存 內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/hooray/archive/2020/12/22/14174402.html

延伸 · 閱讀

精彩推薦
  • vue.jsVue中引入svg圖標的兩種方式

    Vue中引入svg圖標的兩種方式

    這篇文章主要給大家介紹了關于Vue中引入svg圖標的兩種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的...

    十里不故夢10222021-12-31
  • vue.jsVue項目中實現帶參跳轉功能

    Vue項目中實現帶參跳轉功能

    最近做了一個手機端系統,其中遇到了父頁面需要攜帶參數跳轉至子頁面的問題,現已解決,下面分享一下實現過程,感興趣的朋友一起看看吧...

    YiluRen丶4302022-03-03
  • vue.js詳解vue 表單綁定與組件

    詳解vue 表單綁定與組件

    這篇文章主要介紹了vue 表單綁定與組件的相關資料,幫助大家更好的理解和學習使用vue框架,感興趣的朋友可以了解下...

    Latteitcjz6432022-02-12
  • vue.jsVue多選列表組件深入詳解

    Vue多選列表組件深入詳解

    這篇文章主要介紹了Vue多選列表組件深入詳解,這個是vue的基本組件,有需要的同學可以研究下...

    yukiwu6752022-01-25
  • vue.jsVue2.x 項目性能優化之代碼優化的實現

    Vue2.x 項目性能優化之代碼優化的實現

    這篇文章主要介紹了Vue2.x 項目性能優化之代碼優化的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋...

    優小U9632022-02-21
  • vue.jsVue2.x-使用防抖以及節流的示例

    Vue2.x-使用防抖以及節流的示例

    這篇文章主要介紹了Vue2.x-使用防抖以及節流的示例,幫助大家更好的理解和學習使用vue框架,感興趣的朋友可以了解下...

    Kyara6372022-01-25
  • vue.js用vite搭建vue3應用的實現方法

    用vite搭建vue3應用的實現方法

    這篇文章主要介紹了用vite搭建vue3應用的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下...

    Asiter7912022-01-22
  • vue.js梳理一下vue中的生命周期

    梳理一下vue中的生命周期

    看過很多人講vue的生命周期,但總是被繞的云里霧里,尤其是自學的同學,可能js的基礎也不是太牢固,聽起來更是吃力,那我就已個人之淺見,以大白話...

    CRMEB技術團隊7992021-12-22
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 欧美成人高清视频 | 欧美成人黄色小视频 | 在线观看国产二区 | 中文字幕久久伊人 | 骚视频网站 | 国产成人久久精品一区二区三区 | 成人免费色 | 国产精品久久久久久久久久久免费看 | 国产精品毛片一区二区 | 大胆一区 | 亚洲成人免费电影 | 日韩成人在线视频 | 久久9色 | 激情伊人| 国产欧美精品区一区二区三区 | 五月天综合网 | 久久久久久成人 | 欧美另类综合 | 狠狠干美女 | 国产美女一区二区三区 | 国产成人天天爽高清视频 | 国产综合亚洲精品一区二 | 综合久久久 | 午夜电影网址 | 色啪网站 | 亚洲免费影院 | 在线成人免费电影 | 亚洲精品久久久久国产 | 国产精品一区二区久久 | 国产色在线观看 | 日韩精品一区二区三区视频播放 | 婷婷久久综合 | 国产精品美女久久久久av麻豆 | 天天看夜夜爽 | 国产精品女同一区二区久久夜 | 艹艹网 | 91国自产精品中文字幕亚洲 | 国产精品三级视频 | 欧美激情一区二区三区 | 色a视频| 中文字幕电影在线 |