Vue中的keep-alive如何使用

其他教程   发布日期:2023年08月01日   浏览次数:367

本篇内容介绍了“Vue中的keep-alive如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

keep-alive 是 Vue 的内置组件,当它包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。例如:在开发中经常有从列表跳到详情页,然后返回详情页的时候需要缓存列表页的状态(比如滚动位置信息),这个时候就需要保存状态,要缓存状态。在组件切换过程中将状态保留在内存中,防止重复渲染DOM,减少加载时间及性能消耗,提高用户体验性。使用方式为

  1. <keep-alive>
  2. <component />
  3. </keep-alive>

这里的component会被缓存。

1、概念:

keep-alive是Vue的内置组件,当它包裹动态组件时,会缓存不活动的组件实例,而不是销毁。

2、作用:

用来缓存组件,避免多次加载相同的组件,减少性能消耗,提高用户体验。

3、使用方式:

方式一:在App.vue中使用keep-alive标签,表示缓存所有页面

  1. <div id="app">
  2. <keep-alive>
  3. <tar-bar></tar-bar>
  4. <div class="container">
  5. <left-menu></left-menu>
  6. <Main />
  7. </div>
  8. </keep-alive>
  9. </div>

方式二:按条件缓存,使用include,exclude判断是否缓存

  1. // 1. 将缓存 name 为 cc 的组件,如果有多个,可用逗号分
  2. <keep-alive include='cc'>
  3. <router-view/>
  4. </keep-alive>
  5. // 2. 将不缓存 name 为 cc 的组件
  6. <keep-alive exclude='cc'>
  7. <router-view/>
  8. </keep-alive>
  9. // 3. 还可使用属性绑定动态判断
  10. <keep-alive :include='includedComs'>
  11. <router-view/>
  12. </keep-alive>

方式三:在router目录下的index.js中,

第一步:使用meta:{keepAlive = true },表示需要缓存

  1. const routes = [
  2. {
  3. path:'/',
  4. component:Home,
  5. meta:{
  6. keepalive:true
  7. }
  8. },
  9. {
  10. path:'/login',
  11. component:Login
  12. },
  13. {
  14. path:'/edit',
  15. component:Edit,
  16. meta:{
  17. istoken: true
  18. }
  19. },
  20. {
  21. path:'/home',
  22. component:Home,
  23. meta:{
  24. keepalive:true
  25. }
  26. }
  27. ]

第二步:在App.vue中进行判断

  1. <div id="app">
  2. <!--keep-alive 表示页面不会被销毁,即保持页面状态-->
  3. <keep-alive>
  4. <router-view v-if="$route.meta.keepalive"></router-view>
  5. </keep-alive>
  6. <router-view v-if="!$route.meta.keepalive"></router-view>
  7. </div>

以上就是Vue中的keep-alive如何使用的详细内容,更多关于Vue中的keep-alive如何使用的资料请关注九品源码其它相关文章!