亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue 指定組件緩存實例詳解

2019-11-19 14:04:39
字體:
來源:轉載
供稿:網友

keep-alive 簡介

keep-alive 是 Vue 內置的一個組件,可以使被包含的組件保留狀態,或避免重新渲染。

用法也很簡單:

<keep-alive> <component> <!-- 該組件將被緩存! --> </component></keep-alive>

props

include - 字符串或正則表達,只有匹配的組件會被緩存
exclude - 字符串或正則表達式,任何匹配的組件都不會被緩存

// 組件 aexport default { name: 'a', data () { return {} }}<keep-alive include="a"> <component> <!-- name 為 a 的組件將被緩存! --> </component></keep-alive>可以保留它的狀態或避免重新渲染<keep-alive exclude="a"> <component> <!-- 除了 name 為 a 的組件都將被緩存! --> </component></keep-alive>可以保留它的狀態或避免重新渲染<keep-alive include="test-keep-alive"> <!-- 將緩存name為test-keep-alive的組件 --> <component></component></keep-alive><keep-alive include="a,b"> <!-- 將緩存name為a或者b的組件,結合動態組件使用 --> <component :is="view"></component></keep-alive><!-- 使用正則表達式,需使用v-bind --><keep-alive :include="/a|b/"> <component :is="view"></component></keep-alive><!-- 動態判斷 --><keep-alive :include="includedComponents"> <router-view></router-view></keep-alive><keep-alive exclude="test-keep-alive"> <!-- 將不緩存name為test-keep-alive的組件 --> <component></component></keep-alive>

遇見 vue-router

router-view 也是一個組件,如果直接被包在 keep-alive 里面,所有路徑匹配到的視圖組件都會被緩存:

<keep-alive> <router-view> <!-- 所有路徑匹配到的視圖組件都會被緩存! --> </router-view></keep-alive>

然而產品汪總是要改需求,攔都攔不住...

問題

如果只想 router-view 里面某個組件被緩存,怎么辦?

使用 include/exclude
增加 router.meta 屬性
使用 include/exclude

// 組件 aexport default { name: 'a', data () { return {} }}<keep-alive include="a"> <router-view> <!-- 只有路徑匹配到的視圖 a 組件會被緩存! --> </router-view></keep-alive>

exclude 例子類似。

缺點:需要知道組件的 name,項目復雜的時候不是很好的選擇

增加 router.meta 屬性

// routes 配置export default [ { path: '/', name: 'home', component: Home, meta: { keepAlive: true // 需要被緩存 } }, { path: '/:id', name: 'edit', component: Edit, meta: { keepAlive: false // 不需要被緩存 } }]<keep-alive> <router-view v-if="$route.meta.keepAlive"> <!-- 這里是會被緩存的視圖組件,比如 Home! --> </router-view></keep-alive><router-view v-if="!$route.meta.keepAlive"> <!-- 這里是不被緩存的視圖組件,比如 Edit! --></router-view>

優點:不需要例舉出需要被緩存組件名稱

【加鹽】使用 router.meta 拓展

假設這里有 3 個路由: A、B、C。

需求:

默認顯示 A
B 跳到 A,A 不刷新
C 跳到 A,A 刷新
實現方式

在 A 路由里面設置 meta 屬性:

{ path: '/', name: 'A', component: A, meta: { keepAlive: true // 需要被緩存 }}

在 B 組件里面設置 beforeRouteLeave:

export default { data() { return {}; }, methods: {}, beforeRouteLeave(to, from, next) {  // 設置下一個路由的 meta to.meta.keepAlive = true; // 讓 A 緩存,即不刷新 next(); }};

在 C 組件里面設置 beforeRouteLeave:

export default { data() { return {}; }, methods: {}, beforeRouteLeave(to, from, next) { // 設置下一個路由的 meta to.meta.keepAlive = false; // 讓 A 不緩存,即刷新 next(); }};

這樣便能實現 B 回到 A,A 不刷新;而 C 回到 A 則刷新。

總結

路由大法不錯,不需要關心哪個頁面跳轉過來的,只要 router.go(-1) 就能回去,不需要額外參數。

然而在非單頁應用的時候,keep-alive 并不能有效的緩存了= =

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日韩亚洲欧美| 亚洲国产精品久久| 亚洲欧洲在线看| 亚洲网站在线看| 国产国语videosex另类| 色妞在线综合亚洲欧美| 久久韩国免费视频| 国产精品久久久久久av下载红粉| 国产欧美日韩中文字幕在线| 国产精品视频精品| 亚洲一区二区福利| 国产成人精彩在线视频九色| 国产精品观看在线亚洲人成网| 日韩动漫免费观看电视剧高清| 91在线精品视频| 欧美日韩亚洲一区二区三区| 欧美另类极品videosbestfree| 97视频在线看| 精品久久久久久久中文字幕| 精品夜色国产国偷在线| 91成人国产在线观看| 精品无人区太爽高潮在线播放| 成年无码av片在线| 久久国产精品久久久久久久久久| 美女国内精品自产拍在线播放| 色悠悠久久88| 久久久久999| 亚洲美女av黄| 国产丝袜一区二区三区免费视频| 亚洲欧美精品在线| 久久久伊人欧美| 免费91麻豆精品国产自产在线观看| 国产精品自拍视频| 国产成人精品亚洲精品| 懂色aⅴ精品一区二区三区蜜月| 波霸ol色综合久久| 福利一区视频在线观看| 久久久免费在线观看| 超碰97人人做人人爱少妇| 日本国产欧美一区二区三区| 97在线看免费观看视频在线观看| 两个人的视频www国产精品| 国产精品九九九| 色综合伊人色综合网站| 日韩中文av在线| 国产精品欧美激情在线播放| 影音先锋欧美在线资源| xxx一区二区| 久久欧美在线电影| 国产精品精品久久久久久| 91在线精品视频| 久久久久久尹人网香蕉| 欧美激情网友自拍| 欧洲亚洲在线视频| 亚洲成人av在线播放| 91久久在线观看| 国产日韩精品电影| 亚洲精品一区二区久| 欧美黑人xxxx| 国产精品入口日韩视频大尺度| www.日本久久久久com.| 中日韩美女免费视频网址在线观看| 亚洲最大成人网色| 欧美黑人xxxx| 色综合天天综合网国产成人网| 成人黄色生活片| 91九色蝌蚪国产| 国产日韩在线看片| 亚洲视频免费一区| 欧美亚洲午夜视频在线观看| 亚洲品质视频自拍网| 亚洲国产精品成人av| 中文字幕精品影院| 国产精品99久久久久久久久久久久| 97在线免费观看| 欧美又大粗又爽又黄大片视频| 国产一区二区三区精品久久久| 亚洲成人久久一区| 日韩电影第一页| 国产精品视频成人| 国产成人精品日本亚洲专区61| 亚洲成人免费在线视频| 欧美野外猛男的大粗鳮| 91久久精品一区| 91高潮精品免费porn| 国产亚洲一区精品| 久久五月天综合| 欧美日韩免费网站| 欧美午夜激情视频| 亚洲综合在线中文字幕| 国产精品美女主播在线观看纯欲| 亚洲电影免费观看高清完整版在线| 中文字幕日韩有码| 国产日韩在线视频| 欧美黄色三级网站| 久久免费在线观看| 欧美激情视频给我| 国产一区深夜福利| 欧美精品中文字幕一区| 亚洲欧洲激情在线| 久久艳片www.17c.com| 国产精品成人aaaaa网站| 国产成人精品综合| 亚洲国产精品久久| 精品国产一区二区在线| 精品久久久久久久久久久久| 国产91精品网站| 亚洲国内精品在线| 色妞久久福利网| 欧美亚洲激情视频| 亚洲精品免费一区二区三区| 亚洲毛片在线免费观看| 欧美日韩亚洲视频一区| 91在线视频九色| 91中文在线视频| 97人人模人人爽人人喊中文字| 精品国偷自产在线| 成人精品一区二区三区电影免费| 色综合久久天天综线观看| 懂色aⅴ精品一区二区三区蜜月| 日韩av网址在线观看| 久久久久久有精品国产| 国产一区视频在线播放| 在线国产精品播放| 69久久夜色精品国产69乱青草| 国产啪精品视频网站| 亚洲在线视频观看| 九九热精品视频在线播放| 欧美片一区二区三区| 欧美视频一二三| 亚洲美女av在线| 日韩有码在线观看| 热久久免费国产视频| 国产丝袜精品第一页| 日韩大胆人体377p| 久久久999精品免费| 最近中文字幕mv在线一区二区三区四区| 日韩精品在线视频观看| 日韩动漫免费观看电视剧高清| 久久影视电视剧免费网站清宫辞电视| www.欧美精品一二三区| 国产精品视频色| 久久精品91久久香蕉加勒比| 国产成人精品一区| 亚洲欧洲激情在线| 国产精品6699| 国产精品黄色影片导航在线观看| 久久久久亚洲精品成人网小说| 国产精品久久久久久久久久久久| 欧美与黑人午夜性猛交久久久| 精品国产一区二区三区久久久狼| 亚洲黄色免费三级| 91欧美精品午夜性色福利在线| 性色av一区二区三区红粉影视| 热re91久久精品国99热蜜臀| 国产亚洲精品久久久久久| 国产日韩av高清| 美女999久久久精品视频| 国产精品激情av在线播放| 一区二区三欧美| 欧美www在线| 国产精品亚发布| 日韩av免费看网站| 色噜噜久久综合伊人一本|