电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

keep-Alive搭配vue-router實現緩存頁面效果的示例代碼

瀏覽:139日期:2023-01-11 13:49:36

Vue工程中有些頁面需要有緩存。這個功能通過keep-alive組件實現,keep-alive組件可以使被包含的組件保留狀態,或避免重新渲染。

在routes.js中定義路由,在路由中定義元信息(meta字段),需要緩存的頁面就需要在meta對象中定義一個字段,這里設置為keepAlive,設置為true,反之,則不緩存。

{ path: ’/a’, component: () => import(’@/pages/A’), meta: { title:’A’, keepAlive: true }},{ path: ’/b’, component: () => import(’@/pages/B’), meta: { title:’B’, keepAlive: true }},{ path: ’/c’, component: () => import(’@/pages/C’), meta: { title:’C’, keepAlive: true }}

然后修改App.vue頁面

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

這樣就可以實現有目的的對頁面進行緩存了。

但如果這時要實現從A頁面進入B頁面后,讓A頁面不緩存的話我們還需要搭配上路由鉤子函數beforeRouteLeave()。

在A頁面中這樣寫:

beforeRouteLeave(to, from, next) { // 設置下一個路由的 meta if(to.meta.title=='B'){ from.meta.keepAlive = false; // 讓B不緩存,即刷新 } next();}

用到keep-Alive,遇到的最多的一個問題就是怎么去掉這種緩存狀態。就比如用戶每一次進行新流程的操作的時候,這個時候頁面還是緩存是不對的。

就比如,一個用戶登錄之后在某個緩存的頁面上填了信息,如果這個用戶注銷了之后,按道理,這些信息是應該消失的,即恢復初始狀態,但是這個時候不關閉頁面標簽(因為新開標簽的話會使所有頁面重新渲染),用戶再次登錄回去,還會發現之前的頁面還是存在緩存的,即這個頁面沒有重新渲染。如果想要解決這個問題的話,就要提到activated和deactivated這兩個特殊的生存周期函數了。但是需要注意的是,activated和deactivated這兩個生存周期函數只存在于keep-Alive組件中。當一個keep-Alive組件緩存生效的時候,它不會觸發平常我們熟悉的created()和mounted()這類生存周期函數,因此不會被重新渲染,所以,它的狀態得以保留。但是我們可以通過這兩個生存周期函數來更新頁面。

先設置一個全局的標志符,類型為布爾值,代表是否為緩存狀態,你可以把它存進vuex或者sessionStorage。(以下為存入sessionStorage為例)

在用戶登錄成功的時候設置為sessionStorage.setItem('keepAlive',false);然后在緩存頁面中添加如下代碼:

activated:function(){ if(sessionStorage.getItem('keepAlive')==’false’){ //進行初始化 }else{ //to do }},

總結

到此這篇關于keep-Alive搭配vue-router實現緩存頁面效果的示例代碼的文章就介紹到這了,更多相關vue router實現緩存頁面內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
主站蜘蛛池模板: 全自动五线打端沾锡机,全自动裁线剥皮双头沾锡机,全自动尼龙扎带机-东莞市海文能机械设备有限公司 | 氟氨基酮、氯硝柳胺、2-氟苯甲酸、异香兰素-新晨化工 | 智能家居全屋智能系统多少钱一套-小米全套价格、装修方案 | 真空上料机(一种真空输送机)-百科 | 武汉高低温试验机-现货恒温恒湿试验箱-高低温湿热交变箱价格-湖北高天试验设备 | 电缆接头-防爆电缆接头-格兰头-金属电缆接头-防爆填料函 | 河南档案架,档案密集架,手动密集架,河南密集架批发/报价 | 特材真空腔体_哈氏合金/镍基合金/纯镍腔体-无锡国德机械制造有限公司 | 铝合金电阻-无源谐波滤波器-上海稳达电讯设备厂 | 重庆轻质隔墙板-重庆安吉升科技有限公司 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | 专业生物有机肥造粒机,粉状有机肥生产线,槽式翻堆机厂家-郑州华之强重工科技有限公司 | 电磁流量计厂家_涡街流量计厂家_热式气体流量计-青天伟业仪器仪表有限公司 | 焊锡丝|焊锡条|无铅锡条|无铅锡丝|无铅焊锡线|低温锡膏-深圳市川崎锡业科技有限公司 | 桐城新闻网—桐城市融媒体中心主办 | 哈尔滨京科脑康神经内科医院-哈尔滨治疗头痛医院-哈尔滨治疗癫痫康复医院 | 立式_复合式_壁挂式智能化电伴热洗眼器-上海达傲洗眼器生产厂家 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 药品仓库用除湿机-变电站用防爆空调-油漆房用防爆空调-杭州特奥环保科技有限公司 | 拉力机-拉力试验机-万能试验机-电子拉力机-拉伸试验机-剥离强度试验机-苏州皖仪实验仪器有限公司 | 安徽千住锡膏_安徽阿尔法锡膏锡条_安徽唯特偶锡膏_卡夫特胶水-芜湖荣亮电子科技有限公司 | 恒温振荡混匀器-微孔板振荡器厂家-多管涡旋混匀器厂家-合肥艾本森(www.17world.net) | 颚式破碎机,圆锥破碎机,制砂机-新乡市德诚机电制造有限公司 | 南京泽朗生物科技有限公司-液体饮料代加工_果汁饮料代加工_固体饮料代加工 | 全自动端子机|刺破式端子压接机|全自动双头沾锡机|全自动插胶壳端子机-东莞市傅氏兄弟机械设备有限公司 | 环比机械| 北京企业宣传片拍摄_公司宣传片制作-广告短视频制作_北京宣传片拍摄公司 | 全自动包衣机-无菌分装隔离器-浙江迦南科技股份有限公司 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 金属切削液-脱水防锈油-电火花机油-抗磨液压油-深圳市雨辰宏业科技发展有限公司 | 机械立体车库租赁_立体停车设备出租_智能停车场厂家_春华起重 | 冷柜风机-冰柜电机-罩极电机-外转子风机-EC直流电机厂家-杭州金久电器有限公司 | 伶俐嫂培训学校_月嫂培训班在哪里报名学费是多少_月嫂免费政府培训中心推荐 | 工作服定制,工作服定做,工作服厂家-卡珀职业服装(苏州)有限公司 | bkzzy在职研究生网 - 在职研究生招生信息咨询平台 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 | 安徽净化工程设计_无尘净化车间工程_合肥净化实验室_安徽创世环境科技有限公司 | 不锈钢丸厂家,铝丸,铸钢丸-淄博智源铸造材料有限公司 | 膏剂灌装旋盖机-眼药水灌装生产线-西林瓶粉剂分装机-南通博琅机械科技 | 无锡市珂妮日用化妆品有限公司|珂妮日化官网|洗手液厂家 | 紫外线老化试验箱_uv紫外线老化试验箱价格|型号|厂家-正航仪器设备 | 华夏医界网_民营医疗产业信息平台_民营医院营销管理培训 |