亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

vue使用keep-alive實(shí)現(xiàn)組件切換時(shí)保存原組件數(shù)據(jù)方法

瀏覽:11日期:2022-11-08 18:50:40

前言

最近在做一個(gè)精品課程后臺(tái)管理系統(tǒng),其中涉及文件上傳和文件列表展示,我不想將他們寫(xiě)入一個(gè)組件,故分開(kāi)兩個(gè)組件實(shí)現(xiàn)。

問(wèn)題:但由于上傳文件需要時(shí)間,這時(shí)要是用戶切換別的組件查看時(shí),上傳文件組件就銷毀了,導(dǎo)致文件上傳失敗。

追求效果:想利用keep-alive實(shí)現(xiàn)上傳組件切換時(shí)仍繼續(xù)上傳文件,而其他組件則不會(huì)存活。

使用keep-alive的過(guò)程

普通方法:直接使用keep-alive

<keep-alive> <router-view /></keep-alive>

效果:雖然能使上傳文件組件存活,在切換組件時(shí)仍可繼續(xù)上傳

問(wèn)題:其余各個(gè)組件都不會(huì)銷毀和重新掛起,導(dǎo)致所有組件的內(nèi)容不會(huì)更新

更好一點(diǎn)的方法:配置路由加以判斷是否適用keep-alive

路由js:

//ManageFiles組件需要重新掛起刷新數(shù)據(jù),而ManageUploadFile為上傳文件組件,故想之存活{ path:’files’, name:’ManageFiles’, component: () => import(’../pages/course/manage/resource/files/Files’),},{ path:’uploadfile’, name:’ManageUploadFile’, meta:{ keepAlive:true //是否存活標(biāo)志 }, component: () => import(’../pages/course/manage/resource/files/UploadFile’),},

切換組件:

<template> <div class='manageResource'> <keep-alive> <router-view v-if='$route.meta.keepAlive' /> </keep-alive> <router-view v-if='!$route.meta.keepAlive' /> </div></template>

效果圖:

(1)一開(kāi)始為File組件,mounted()打印’我是File’

vue使用keep-alive實(shí)現(xiàn)組件切換時(shí)保存原組件數(shù)據(jù)方法

(2)第一次切換為UploadFile組件,mounted()打印’我是UploadFile’

vue使用keep-alive實(shí)現(xiàn)組件切換時(shí)保存原組件數(shù)據(jù)方法

(3)再次切換回File組件,mounted()再次重新打印’我是File’

vue使用keep-alive實(shí)現(xiàn)組件切換時(shí)保存原組件數(shù)據(jù)方法

(4)最后再次切換回UploadFile組件,因?yàn)樗恢贝婊睿圆粫?huì)重新觸發(fā)mounted()再次重新打印’我是UploadFile’

vue使用keep-alive實(shí)現(xiàn)組件切換時(shí)保存原組件數(shù)據(jù)方法

補(bǔ)充知識(shí):vue 動(dòng)態(tài)組件(tabs切換)keep-alive:主要用于保留組件狀態(tài)或避免重新渲染

通過(guò)keep-alive 保留數(shù)據(jù)值 填寫(xiě)數(shù)據(jù)時(shí)切換到其他頁(yè)面,后返回當(dāng)前頁(yè)數(shù)據(jù)保留 ,主要用于保留組件狀態(tài)或避免重新渲染

<!--動(dòng)態(tài)組件-component使用--> <div class='app'> <ul> <li @click='currView=’home’'>首頁(yè)</li> <li @click='currView=’abount’'>關(guān)于我們</li> </ul> <!--通過(guò)keep-alive 保留數(shù)據(jù)值 填寫(xiě)數(shù)據(jù)時(shí)切換到其他頁(yè)面,后返回當(dāng)前頁(yè)數(shù)據(jù)保留--> <keep-alive> <component :is='currView'></component> </keep-alive> </div>

<script type='text/x-Template' id='homeTemp'> <h2>首頁(yè)數(shù)據(jù)</h2></script><script type='text/x-Template' id='abountTemp'> <h2>關(guān)于我們數(shù)據(jù)<input type='text'/></h2></script>

<script type='text/javascript'> var vm=new Vue({ el:’.app’, data:{ currView:'home' }, components:{ 'home':{ template:'#homeTemp' }, 'abount':{ template:'#abountTemp' } } }); </script>

vue使用keep-alive實(shí)現(xiàn)組件切換時(shí)保存原組件數(shù)據(jù)方法

以上這篇vue使用keep-alive實(shí)現(xiàn)組件切換時(shí)保存原組件數(shù)據(jù)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 国产精品99久久久久久人 | 欧美影院一区二区 | 久久香蕉国产线看观看精品蕉 | 污污小视频在线观看 | 亚洲视频一区在线观看 | 国产色产综合色产在线观看视频 | 黄色一级片在线观看 | 欧美一级毛片免费网站 | 国产成人禁片免费观看 | 1024国产在线 | 国产欧美日韩精品a在线观看 | 亚洲精品日本一区二区在线 | 国产妇女性爽视频免费 | 全免费a级毛片免费看 | 欧美性一区二区三区 | 曰本又色又爽又黄三级视频 | 黄色片免费的 | 91探花在线视频 | 成人国产精品一区二区网站 | 亚洲另类在线视频 | 成人污片 | 国产一区二区三区手机在线观看 | 毛片应用 | 国产一区二区免费在线观看 | 亚洲欧美精品中文字幕 | 99久久免费看精品国产一区 | 成人欧美日韩高清不卡 | 成人福利在线视频 | 欧美性一区二区三区 | 日韩欧美一级大片 | 国产亚洲一区二区三区啪 | 国产精品欧美激情在线播放 | 我要看黄色特级黄色录像 | 日本xxxx色视频在线观看 | 女人被男人狂躁视频免费 | 在线二区人妖系列 | 日本一级特黄毛片免费视频9 | 国产98在线传媒在线视频 | 久久99亚洲综合精品首页 | 国产在线观看美女福利精 | 手机在线一区二区三区 |