广告
返回顶部
首页 > 资讯 > 精选 >vue中keepAlive组件的作用和使用方法详细介绍
  • 295
分享到

vue中keepAlive组件的作用和使用方法详细介绍

2023-06-20 18:06:17 295人浏览 薄情痞子
摘要

这篇文章主要讲解了“Vue中keepAlive组件的作用和使用方法详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue中keepAlive组件的作用和使用方法详细介绍”吧!前言在面试

这篇文章主要讲解了“Vue中keepAlive组件的作用和使用方法详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue中keepAlive组件的作用和使用方法详细介绍”吧!

前言

面试的时候,很多面试官再问vue的时候可能就会提一嘴,你知道keep-alive有什么作用吗?

keep-alive是vue内置的一个组件,而这个组件的作用就是能够缓存不活动的组件,我们能够知道,一般情况下,组件进行切换的时候,默认会进行销毁,如果有需求,某个组件切换后不进行销毁,而是保存之前的状态,那么就可以利用keep-alive来实现

<keep-alive>是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM。

<keep-alive> 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。和 <transition> 相似,<keep-alive> 是一个抽象组件:它自身不会渲染一个 DOM 元素,也不会出现在父组件链中。

我这里利用脚手架创建项目后会生成home和about两个组件,并且通过路由进行切换

home组件

<template>  <div class="home">    <input type="text">  </div></template><script>// @ is an alias to /srcimport HelloWorld from '@/components/HelloWorld.vue'export default {  name: 'home',  components: {    HelloWorld  }}</script>

我在home组件中写了一个input输入框

about组件

<template>  <div class="about">    <input type="text">  </div></template><script>export default {  name:"about"}</script>

同样的about组件也放了一个输入框

vue中keepAlive组件的作用和使用方法详细介绍

当我们在home组件的输入框输入一些内容的时候,然后切换到about组件,在切换回home组件,我们会发现之前输入的内容被清空了,其实也容易理解,就是当切换到about组建的时候,home组件就被销毁了,输入框的值自然被清空了

vue中keepAlive组件的作用和使用方法详细介绍

我在home组件写了destroyed生命周期函数

vue中keepAlive组件的作用和使用方法详细介绍

当切换到about组件的时候home组件的destroyed就触发了,所以home组件被销毁了

那么此时我们就可以利用keep-alive组件进行包裹router-view组件,将不活动的组件缓存起来

App组件

<template>  <div id="app">    <div id="nav">      <router-link to="/">Home</router-link> |      <router-link to="/about">About</router-link>    </div>    <keep-alive>      <router-view />    </keep-alive>      </div></template>

写完之后会发现当切换到about组件时,home组件中的destroyed并没有触发,并且home组件的值也保存了下来

vue中keepAlive组件的作用和使用方法详细介绍

但是这样也肯定不好,我们会发现,about组件的值也被缓存了,就是所有的路由组件都被缓存了,严重浪费性能,而且也不符合需求,我们现在只想缓存home组件

在keep-alive上有两个属性

字符串正则表达式。只有匹配的组件会被缓存。

  • include 值为字符串或者正则表达式匹配的组件name会被缓存。

  • exclude 值为字符串或正则表达式匹配的组件name不会被缓存。

首先利用include实现,匹配到组件中定义的name,将进行缓存

<keep-alive include="home">   <router-view /></keep-alive>

vue中keepAlive组件的作用和使用方法详细介绍

我们会发现home已经被缓存了,但是about没有被缓存

而exclude就是排除了,这个就不在演示了,很简单,除了这个我们还可以利用路由中的meta属性来控制

{      path: '/',      name: 'home',      meta:{        keepAlive:true      },      component: Home    }

将home的路由规则钟的meta添加keepAlive属性为true,也就是当前路由组件要进行缓存

keep-alive代码可以结合v-if进行包裹,如果meta中的keepAlive为true进行缓存,否侧不进行缓存,这样可以更灵活一些

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

这样组件的缓存是实现了,但是还是会有一些问题,就是因为组件被缓存,并没有被销毁,所以组件在切换的时候也就不会被重新创建,自然也就不会调用created等生命周期函数,所以此时要使用activated与deactivated来获取当前组件是否处于活动状态

我在home组件里面写入了activated与deactivated生命周期函数

activated(){    console.log("哎呀看见我了")    console.log("----------activated--------")  },  deactivated(){    console.log("讨厌!!你又走了")    console.log("----------deactivated--------")  }

vue中keepAlive组件的作用和使用方法详细介绍

通过上面的gif图相信已经看得很清楚了,此时keep-Alive也就差不多了

感谢各位的阅读,以上就是“vue中keepAlive组件的作用和使用方法详细介绍”的内容了,经过本文的学习后,相信大家对vue中keepAlive组件的作用和使用方法详细介绍这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: vue中keepAlive组件的作用和使用方法详细介绍

本文链接: https://www.lsjlt.com/news/299185.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue中keepAlive组件的作用和使用方法详细介绍
    这篇文章主要讲解了“vue中keepAlive组件的作用和使用方法详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue中keepAlive组件的作用和使用方法详细介绍”吧!前言在面试...
    99+
    2023-06-20
  • vue中缓存组件keepalive的介绍及使用方法
    目录介绍使用缓存所有的组件缓存某个组件keep-alive的使用示例include和exclude属性的使用include的使用exclude的使用生命周期介绍 keep-alive...
    99+
    2022-11-13
    vue keep alive vue 缓存组件 keep alive
  • vue中keepAlive组件的作用和使用方法详解
    前言 在面试的时候,很多面试官再问vue的时候可能就会提一嘴,你知道keep-alive有什么作用吗? keep-alive是vue内置的一个组件,而这个组件的作用就是能够缓存不活动...
    99+
    2022-11-12
  • Vuex详细介绍和使用方法
    目录一、什么是Vuex二、运行机制三、创建项目1、使用脚手架搭建Vue项目2、安装Vuex3、启动项目4、配置使用Vuex4.1、创建store文件夹4.2、配置全局使用store对...
    99+
    2022-11-13
  • Android Jetpack组件中LifeCycle作用详细介绍
    目录Jetpack1、那么Jetpack是什么呢2、为何使用Jetpack3、Jetpack与AndroidXLifeCycle1、LifeCycle的作用2、LifeCycle应用...
    99+
    2022-11-13
  • 详细介绍golang中.()的使用方法
    Golang是一门非常流行的编程语言,在很多领域都有着广泛的应用。在开发过程中,很多时候我们需要将函数作为参数传递给其他函数,这时候就需要用到golang中的.()用法。本文将详细介绍golang中.()的使用方法。什么是.()用法?在go...
    99+
    2023-05-14
  • 详细介绍Github的使用方法
    随着互联网技术的不断发展,越来越多的开发者开始加入到开源项目中,Github作为目前全球最大的代码托管平台之一,也成为了开发者们分享、学习、合作的重要工具之一。然而,如何使用Github来进行代码管理、版本控制、协作开发等,还是很多新手开发...
    99+
    2023-10-22
  • Android Service中方法使用详细介绍
     service作为四大组件值得我们的更多的关注 在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务。例如,一个从s...
    99+
    2022-06-06
    android service service 方法 Android
  • React中setState/useState的使用方法详细介绍
    目录一、React如何使用setState/useState的最新的值A.使用setState的最新的值B.使用useState的最新的值二、React中setState/useSt...
    99+
    2023-05-14
    React setState与useState React setState React useState
  • HTML5的download属性详细介绍和使用方法
    这篇文章主要介绍“HTML5的download属性详细介绍和使用方法”,在日常操作中,相信很多人在HTML5的download属性详细介绍和使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方...
    99+
    2022-10-19
  • javascript中链表和数组的详细介绍和使用
    这篇文章主要讲解了“javascript中链表和数组的详细介绍和使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript中链表和数组的详细介绍...
    99+
    2022-10-19
  • Java中File文件操作类的详细使用介绍
    文章目录 File类的使用File的介绍File常用API判断文件类型-获取文件信息创建文件-删除文件功能遍历文件夹 File类的使用 File的介绍 File的概述: File类在包java.io.Fil...
    99+
    2023-08-21
    java jvm 开发语言
  • Python3 pickle模块的使用方法详细介绍
    pickle模块特点 1、只能在python中使用,只支持python的基本数据类型。 2、可以处理复杂的序列化语法。(例如自定义的类的方法,游戏的存档等) 3、序列化的时候,只是...
    99+
    2022-11-12
  • asp.net Repeater控件的说明及详细介绍及使用方法
    Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repeater 控件提供布局。当该页运行时,Repeater 控件依次通过数据源中的记录为每个记录呈...
    99+
    2022-06-07
    net ASP.NET 方法 ASP
  • vue中使用svg画路径图的详细介绍
    什么是svg: SVG 是使用 XML 来描述二维图形和绘图程序的语言。 svg的优点与特点 SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失SVG 是万维网联盟的标准SV...
    99+
    2022-11-13
  • ASP中文件上传组件ASPUpload介绍和使用方法
    ASPUpload是一个用于在ASP网页中实现文件上传的组件。它提供了简单易用的接口和丰富的功能,方便开发者在网页中实现文件上传功能...
    99+
    2023-08-22
    ASP
  • 详细介绍PHP中SQL查询语句的使用方法
    PHP是一种流行的服务器端编程语言,MySQL是一种广泛应用的关系型数据库管理系统,它们的结合能够为Web应用程序提供强大的查询和数据处理能力。在PHP开发过程中,SQL查询语句是必须掌握的知识之一。本文将详细介绍PHP中SQL查询语句的使...
    99+
    2023-05-14
    SQL php
  • Pywifi:Python库pywifi的详细介绍、安装方法和使用攻略
    Pywifi:Python库pywifi的详细介绍、安装方法和使用攻略 一、简介 pywifi是一个用于操纵无线网络接口的Python软件包。通过pywifi,我们能够轻松地控制计算机上的Wi-Fi网...
    99+
    2023-10-24
    python 开发语言 linux
  • Java中方法的使用、重载与递归的详细介绍
    目录一.方法的基本使用1.什么是方法2.方法基本语法二.方法的重载1.重载的作用2.重载的使用规则三.方法的递归1.递归的概念2.递归执行过程分析3.递归练习1.按顺序打印一个数字的...
    99+
    2022-11-12
  • Android 使用jarsigner给apk签名的方法详细介绍
    Android 使用jarsigner给apk签名的方法详细介绍 工作中APP功能完成以后往往需要往应用商店提交一些内容,如商店中存在本公司别的人员提交的APP,往往需要进行认...
    99+
    2022-06-06
    方法 apk Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作