详解Vue中keep-alive的使用

 更新时间:2023年03月03日 11:06:00   作者:April Gemini  
keep-alive是Vue的内置组件,当它包裹动态组件时,会缓存不活动的组件实例,而不是销毁,这篇文章主要介绍了详解Vue中keep-alive的使用,需要的朋友可以参考下

前言

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

<keep-alive>
    <component />
</keep-alive>

这里的component会被缓存。

1、概念:

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

2、作用:

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

3、使用方式:

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

  <div id="app">
  	<keep-alive>
	    <tar-bar></tar-bar>
	    <div class="container">
	      <left-menu></left-menu>
	      <Main />
	    </div>
    </keep-alive>
  </div>

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

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

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

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

 const routes = [
  {
    path:'/',
    component:Home,
    meta:{
        keepalive:true
    }
  },
  {
    path:'/login',
    component:Login
  },
   {
      path:'/edit',
      component:Edit,
      meta:{
          istoken: true
      }
   },
  {
      path:'/home',
      component:Home,
      meta:{
          keepalive:true
      }
  }
]

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

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

到此这篇关于详解Vue中keep-alive的使用的文章就介绍到这了,更多相关Vue keep-alive使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue中数据绑定值(字符串拼接)的几种实现方法

    vue中数据绑定值(字符串拼接)的几种实现方法

    这篇文章主要介绍了vue中数据绑定值(字符串拼接)的几种实现方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • ResizeObserver loop limit exceeded报错原因及解决方案

    ResizeObserver loop limit exceeded报错原因及解决方案

    这篇文章主要给大家介绍了关于ResizeObserver loop limit exceeded报错原因及解决的相关资料,公司项目监听系统中发现一个高频错误ResizeObserver loop limit exceeded,而浏览器的console中却没有提示,需要的朋友可以参考下
    2023-09-09
  • vue中@click如何绑定多个事件

    vue中@click如何绑定多个事件

    这篇文章主要介绍了vue中@click如何绑定多个事件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • vue-editor-bridge报错的解决方案

    vue-editor-bridge报错的解决方案

    这篇文章主要介绍了vue-editor-bridge报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • 解决vue中props对象中设置多个默认值的问题

    解决vue中props对象中设置多个默认值的问题

    props中设置了默认值,但是获取时(获取父页面没有传的属性) 打印出来是undefined,所以本文给大家介绍了解决vue中props对象中设置多个默认值的问题,需要的朋友可以参考下
    2024-04-04
  • Vue实现网页转PDF方法流程详解

    Vue实现网页转PDF方法流程详解

    在日常的工作中,有时候会碰到需要将某个网址网页保存成为pdf的情况,这篇文章主要介绍了用Vue实现网页转PDF的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • vue2.0 根据状态值进行样式的改变展示方法

    vue2.0 根据状态值进行样式的改变展示方法

    下面小编就为大家分享一篇vue2.0 根据状态值进行样式的改变展示方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Vue.js单向绑定和双向绑定实例分析

    Vue.js单向绑定和双向绑定实例分析

    这篇文章主要介绍了Vue.js单向绑定和双向绑定,结合实例形式分析了vue.js单向绑定与双向绑定相关原理、实现方法及操作技巧,需要的朋友可以参考下
    2018-08-08
  • vue之带参数跳转打开新页面、新窗口

    vue之带参数跳转打开新页面、新窗口

    这篇文章主要介绍了vue之带参数跳转打开新页面、新窗口方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 完美解决vue 项目开发越久 node_modules包越大的问题

    完美解决vue 项目开发越久 node_modules包越大的问题

    这篇文章主要介绍了vue 项目开发越久 node_modules包越大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09

最新评论