vue2.0 keep-alive的最佳實踐,供大家參考,具體內容如下
1.基本用法
vue2.0提供了一個keep-alive組件用來緩存組件,避免多次加載相應的組件,減少性能消耗
<keep-alive><component> <!-- 組件將被緩存 --></component></keep-alive>
有時候 可能需要緩存整個站點的所有頁面,而頁面一般一進去都要觸發請求的
在使用keep-alive的情況下
<keep-alive><router-view></router-view></keep-alive>
將首次觸發請求寫在created鉤子函數中,就能實現緩存,
比如列表頁,去了詳情頁 回來,還是在原來的頁面
2.緩存部分頁面或者組件
(1)使用router. meta屬性
// 這是目前用的比較多的方式<keep-alive> <router-view v-if="!$route.meta.notKeepAlive"></router-view></keep-alive><router-view v-if="$route.meta.notKeepAlive"></router-view>
router設置
... routes: [ { path: '/', redirect: '/index', component: Index, meta: { keepAlive: true }}, { path: '/common', component: TestParent, children: [ { path: '/test2', component: Test2, meta: { keepAlive: true } } ] } .... // 表示index和test2都使用keep-alive(2).使用新增屬性inlcude/exclude
2.1.0后提供了include/exclude兩個屬性 可以針對性緩存相應的組件
<!-- comma-delimited string --><keep-alive include="a,b"> <component :is="view"></component></keep-alive><!-- regex (use v-bind) --><keep-alive :include="/a|b/"> <component :is="view"></component></keep-alive>//其中a,b是組件的name
注意:這種方法都是預先知道組件的名稱的
(3)動態判斷
<keep-alive :include="includedComponents"> <router-view></router-view></keep-alive>
includedComponents動態設置即可
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答