vue頁面緩存


頁面緩存在頁面中長期會使用到,可以更快速的在頁面切換期間的資源獲取

主要是用keep-alive實現

在vue項目中,相關的寫法比較多,還有一些注意點需要仔細

第一種方式

在App.vue中

添加標簽

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

 這會就是所有的頁面都會被緩存

這里做了兩個頁面的相互跳轉,分別寫了一個輸入框,在輸入內容后,跳轉時,輸入的內容因為緩存的原因會被保留

 

 

 

 

 如果存在某些頁面需要緩存,那么可以通過keep-alive的屬性去處理

其中就是include和exclude

  include:名稱匹配的組件才會被緩存,其中可以寫字符串或正則表達式

  exclude:名稱匹配的組件不會被緩存,其中同樣是字符串或正則表達式

這里的名稱是指組件的名稱

<script>
export default {
  name: 'HelloWorld'
}
</script>

  

  <keep-alive include="HelloWorld">
    <!-- 只有匹配到的HelloWorld才能被緩存--> <router-view /> </keep-alive>

  

     第二種方式:

     在路由中進行設置通過添加meta,route/index.js     

export default new Router({
  routes: [{
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld,
      meta: {
        keepAlive: true // 該路由會被緩存
      }
    },

    {
      path: '/ss',
      name: 'ss',
      component: Ss,
      meta: {
        keepAlive:false // 該路由不會被緩存,不需要緩存的時候該屬性可以不用寫
      }
}]
})

  

這時候頁面還需要通過該屬性進行判斷是否緩存

在App.vue 

   <keep-alive>
      <router-view v-if="$route.meta.keepAlive">
      </router-view>
    </keep-alive>

    <router-view v-if="!$route.meta.keepAlive">
    </router-view>

  這樣寫有個優點就是,需要緩存不需要緩存的name可以隨便寫,不需要做什么規律性的去寫出一個合適的正則去匹配上,就會更加靈活些

 常見的應用場景可以是,列表到詳情頁,從詳情頁返回到列表頁,如果說列表頁沒有做緩存,在單頁面下,會直接返回列表首頁(存在分頁的情況),就不能直接返回至之前離開的列表頁,所以這個地方在列表頁添加頁面緩存后,可以做到返回至之前離開的列表頁

 

 

 

 

 沒有緩存的時候,返回列表:

 

 有緩存的時候,返回列表

 

 

 

 

所以從某些程度上來講,即增加了頁面的響應速度,又怎么增加了用戶體驗,總體來說,還是比較實用的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM