<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        vue怎樣使用緩存

        來源:懂視網 責編:小采 時間:2020-11-27 19:52:51
        文檔

        vue怎樣使用緩存

        vue怎樣使用緩存:這次給大家帶來vue怎樣使用緩存,vue使用緩存的注意事項有哪些,下面就是實戰案例,一起來看一下。keep-alive 簡介keep-alive 是 Vue 內置的一個組件,可以使被包含的組件保留狀態,或避免重新渲染。用法也很簡單:<keep-alive> <
        推薦度:
        導讀vue怎樣使用緩存:這次給大家帶來vue怎樣使用緩存,vue使用緩存的注意事項有哪些,下面就是實戰案例,一起來看一下。keep-alive 簡介keep-alive 是 Vue 內置的一個組件,可以使被包含的組件保留狀態,或避免重新渲染。用法也很簡單:<keep-alive> <

        這次給大家帶來vue怎樣使用緩存,vue使用緩存的注意事項有哪些,下面就是實戰案例,一起來看一下。

        keep-alive 簡介

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

        用法也很簡單:

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

        props

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

        // 組件 a
        export 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

        // 組件 a
        export 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 并不能有效的緩存了= =

        相信看了本文案例你已經掌握了方法,更多精彩請關注Gxl網其它相關文章!

        推薦閱讀:

        vue新手入門須知

        Angular父組件調用子組件步奏詳解

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        vue怎樣使用緩存

        vue怎樣使用緩存:這次給大家帶來vue怎樣使用緩存,vue使用緩存的注意事項有哪些,下面就是實戰案例,一起來看一下。keep-alive 簡介keep-alive 是 Vue 內置的一個組件,可以使被包含的組件保留狀態,或避免重新渲染。用法也很簡單:<keep-alive> <
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲视频免费播放| 免费av一区二区三区| 在线视频免费观看www动漫| 精品日韩亚洲AV无码 | 久久亚洲中文字幕精品有坂深雪 | 97无码免费人妻超级碰碰碰碰| 噜噜噜亚洲色成人网站∨| 99re免费视频| 亚洲国产韩国一区二区| 91网站免费观看| 精品丝袜国产自在线拍亚洲| 四虎永久在线精品免费观看视频| 亚洲另类图片另类电影| 免费特级黄毛片在线成人观看| 亚洲av无码专区亚洲av不卡| 国产成人免费网站在线观看| 色哟哟国产精品免费观看| 亚洲精品无码AV人在线播放| 免费视频成人片在线观看| 亚洲人成网站18禁止久久影院| 成年女人色毛片免费看| 污污视频免费观看网站| 亚洲人成影院在线无码按摩店| 久久精品国产这里是免费| 91在线精品亚洲一区二区| 毛片免费全部免费观看| 粉色视频免费入口| 中文亚洲AV片在线观看不卡| 69国产精品视频免费| 久久无码av亚洲精品色午夜| 亚洲最大av无码网址| 97视频免费观看2区| 亚洲高清乱码午夜电影网| 亚洲视频一区二区| 91免费国产精品| 九九精品国产亚洲AV日韩| 国产成人A亚洲精V品无码| 国产99视频精品免费观看7| 日本一区二区在线免费观看| 91亚洲一区二区在线观看不卡| 国产又粗又长又硬免费视频|