最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue keep-alive實(shí)現(xiàn)多組件嵌套中個別組件存活不銷毀的操作

 更新時間:2020年10月30日 10:01:25   作者:小孬種  
這篇文章主要介紹了vue keep-alive實(shí)現(xiàn)多組件嵌套中個別組件存活不銷毀的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

前言

最近在做一個精品課程后臺管理系統(tǒng),其中涉及文件上傳和文件列表展示,我不想將他們寫入一個組件,故分開兩個組件實(shí)現(xiàn),但由于上傳文件需要時間,這時要是用戶切換別的組件查看時,上傳文件組件就銷毀了,導(dǎo)致文件上傳失敗,所以需要采取keep-alive技術(shù)實(shí)現(xiàn)不銷毀上傳文件組件,同時也由于系統(tǒng)模塊較多,所以需要多組件進(jìn)行嵌套。

問題:多組件嵌套下如何指定對應(yīng)的一個或多個組件存活呢?

*tips:要是對于Vue使用keep-alive的基本用法不熟悉的也可以點(diǎn)擊查看vue使用keep-alive的基本用法

配置路由加以判斷是否使用keep-alive

MVideoUpload,MFileUpload為上傳文件組件,故想之存活,而其他組件則需要掛起刷新數(shù)據(jù),但由于MVideoUpload,MFileUpload分別嵌套在MVideos,MFiles組件中,為了保證跳轉(zhuǎn)其他模塊組件的時候,上傳視頻和上傳文件的模塊不銷毀(因?yàn)橐坏└附M件銷毀,子組件自然也銷毀了),所以兩個父組件也需要存活,只是之后需要再加以判斷存活那幾個子組件。

路由js:

{
 path:'resource',
 name:'MResource',
 meta:{
 auth:true  //是否需要登錄
 },
 component: () => import('../pages/manage/resource/Resource'),
 children:[
 {
  path: 'videos',
  name: 'MVideos',
  meta:{
  keepAlive:true, //包含存活組件
  auth:true  //是否需要登錄
  },
  component: () => import('../pages/manage/resource/videos/Videos'),
  children:[
  {
   path:'list',
   name:'MVideoList',
   meta:{
   auth:true  //是否需要登錄
   },
   component: () => import('../pages/manage/resource/videos/VideosList'),
  },
  {
   path:'upload',
   name:'MVideoUpload',
   meta:{
   keepAlive:true, //需要存活
   auth:true  //是否需要登錄
   },
   component: () => import('../pages/manage/resource/videos/UploadVideo'),
  },
  {
   path:'update',
   name:'MVideoUpdate',
   meta:{
   auth:true  //是否需要登錄
   },
   component: () => import('../pages/manage/resource/videos/UpdateVideo'),
  },
  {
   path:'detail',
   name:'MVideoDetail',
   meta:{
   auth:true  //是否需要登錄
   },
   component: () => import('../pages/manage/resource/videos/VideoDetail'),
  },
  ],
  redirect:{name: 'MVideoList'}
 },
 {
  path:'files',
  name:'MFiles',
  meta:{
  keepAlive:true, //包含存活組件
  auth:true  //是否需要登錄
  },
  component: () => import('../pages/manage/resource/files/Files'),
  children:[
  {
   path: 'list',
   name: 'MFileList',
   meta:{
   auth:true  //是否需要登錄
   },
   component: () => import('../pages/manage/resource/files/FilesList'),
  },
  {
   path:'upload',
   name:'MFileUpload',
   meta:{
   keepAlive:true, //需要存活
   auth:true  //是否需要登錄
   },
   component: () => import('../pages/manage/resource/files/UploadFile'),
  },
  {
   path:'update',
   name:'MFileUpdate',
   meta:{
   auth:true  //是否需要登錄
   },
   component: () => import('../pages/manage/resource/files/UpdateFile'),
  },
  {
   path:'detail',
   name:'MFileDetail',
   meta:{
   auth:true  //是否需要登錄
   },
   component: () => import('../pages/manage/resource/files/FileDetail'),
  },
  ],
  redirect:{name: 'MFileList'}
 },
 ],
 redirect:{name: 'MFiles'}
},

各父組件都是如此:

一層層判斷哪些組件需要存活不銷毀,從而實(shí)現(xiàn)對任意一個組件切換組件時使其存活不銷毀。

<transition name="component-fade" mode="out-in">
 <keep-alive>
 <router-view v-if="$route.meta.keepAlive" />
 </keep-alive>
</transition>
<transition name="component-fade" mode="out-in">
 <router-view v-if="!$route.meta.keepAlive" />
</transition>

補(bǔ)充知識:vue頁簽?zāi)J?keep-alive解決關(guān)閉頁簽后緩存組件未銷毀問題

1.簡介

vue使用頁簽?zāi)J?,組件使用keep-alive緩存,發(fā)現(xiàn)頁簽關(guān)閉后緩存組件未銷毀,只是出于非活動狀態(tài)

2.解決

使用keep-alive的include屬性,這個屬性包含了緩存組件的名稱,可以將其賦值為動態(tài)屬性

頁簽store

export default {
 state: {
  current: layui.data('tag').current || {},//當(dāng)前頁簽
  list: layui.data('tag').list || []//頁簽列表
 },
 getters:{
  /** 標(biāo)簽名稱列表 */
  tagNames (state) {
   return state.list.map(function(tag){return tag.name})
  }
 }
}

list是頁簽對象列表

tagNames為頁簽名稱列表,即要緩存的頁簽組件名稱

<keep-alive v-if="isRouterAlive" :include="tagNames">
   <router-view ></router-view>
</keep-alive>
...mapGetters({
  tagNames:'tagNames'
})

這樣就保證了移除tag后,相應(yīng)的組件名稱也不會被緩存

以上這篇vue keep-alive實(shí)現(xiàn)多組件嵌套中個別組件存活不銷毀的操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue中如何獲取json文件中的數(shù)據(jù)

    Vue中如何獲取json文件中的數(shù)據(jù)

    訪問百度音樂API需要傳遞音樂類型參數(shù),而這些參數(shù)是存在musictype.json中,現(xiàn)在在組件listcate.vue需要獲取json數(shù)據(jù),如何實(shí)現(xiàn)呢,下面小編給大家?guī)砹薞ue中如何獲取json文件中的數(shù)據(jù),感興趣的朋友一起看看吧
    2022-09-09
  • vue3中vite.config.js相關(guān)常用配置超詳細(xì)講解

    vue3中vite.config.js相關(guān)常用配置超詳細(xì)講解

    在Vue3項(xiàng)目中vite.config.js文件是Vite構(gòu)建工具的配置文件,它用于定義項(xiàng)目的構(gòu)建和開發(fā)選項(xiàng),這篇文章主要介紹了vue3中vite.config.js相關(guān)常用配置的相關(guān)資料,需要的朋友可以參考下
    2025-04-04
  • VueJs路由跳轉(zhuǎn)——vue-router的使用詳解

    VueJs路由跳轉(zhuǎn)——vue-router的使用詳解

    本篇文章主要介紹了VueJs路由跳轉(zhuǎn)——vue-router的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • vue2結(jié)合element-ui實(shí)現(xiàn)TreeSelect樹選擇功能

    vue2結(jié)合element-ui實(shí)現(xiàn)TreeSelect樹選擇功能

    這篇文章主要為大家詳細(xì)介紹了vue2如何結(jié)合element-ui實(shí)現(xiàn)TreeSelect樹選擇功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2024-03-03
  • 分享vue.js devtools遇到一系列問題

    分享vue.js devtools遇到一系列問題

    這篇文章主要為大家詳細(xì)介紹了vue.js devtools遇到問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • vue實(shí)現(xiàn)秒殺倒計時組件

    vue實(shí)現(xiàn)秒殺倒計時組件

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)秒殺倒計時組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • el-table渲染慢卡頓問題最優(yōu)解決方案

    el-table渲染慢卡頓問題最優(yōu)解決方案

    本文主要介紹了el-table渲染慢卡頓問題最優(yōu)解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • vue.js+elementUI實(shí)現(xiàn)點(diǎn)擊左右箭頭切換頭像功能(類似輪播圖效果)

    vue.js+elementUI實(shí)現(xiàn)點(diǎn)擊左右箭頭切換頭像功能(類似輪播圖效果)

    這篇文章主要介紹了vue.js+elementUI實(shí)現(xiàn)點(diǎn)擊左右箭頭切換頭像功能(類似輪播圖),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • vue3?typescript封裝axios過程示例

    vue3?typescript封裝axios過程示例

    這篇文章主要為大家介紹了vue3?typescript封裝axios過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 解決vue打包c(diǎn)ss文件中背景圖片的路徑問題

    解決vue打包c(diǎn)ss文件中背景圖片的路徑問題

    今天小編就為大家分享一篇解決vue打包c(diǎn)ss文件中背景圖片的路徑問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09

最新評論

历史| 若羌县| 白河县| 上高县| 新兴县| 崇阳县| 夹江县| 永川市| 莱西市| 米林县| 柳州市| 绥芬河市| 桐城市| 陵水| 邻水| 绩溪县| 龙州县| 洪洞县| 麟游县| 富平县| 肃南| 龙南县| 清河县| 孝昌县| 健康| 巴南区| 舞阳县| 永胜县| 平乐县| 蒙山县| 舞钢市| 永胜县| 广水市| 九江市| 巴彦淖尔市| 佳木斯市| 宁晋县| 阳新县| 镇江市| 祁东县| 大姚县|