iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >keep-alive组件怎么在Vue中使用
  • 548
分享到

keep-alive组件怎么在Vue中使用

2023-06-14 11:06:31 548人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关keep-alive组件怎么在Vue中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 一、keep-alive 用法< keep-alive> 包

这篇文章将为大家详细讲解有关keep-alive组件怎么在Vue中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

 一、keep-alive 用法

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

当组件在 < keep-alive> 内被切换,它的 activated 和 deactivated 这两个生命周期钩子函数将会被对应执行。

Props:

  include - 字符串正则表达式。只有名称匹配的组件会被缓存。
  exclude - 字符串或正则表达式。任何名称匹配的组件都不会被缓存。
  max - 数字。最多可以缓存多少组件实例。

  • include & exclude

如果你只想缓存部分组件的状态,可以使用include属性。

如果你想除掉一些组件,其他的才被缓存,可以使用exlucde属性。

  • max

最多可以缓存多少组件实例。一旦这个数字达到了,在新实例被创建之前,已缓存组件中最久没有被访问的实例会被销毁掉。

<keep-alive :max="10">  <component :is="view"></component></keep-alive>

使用示例:

1.缓存所有页面:
<keep-alive>    <router-view></router-view>    <!--这里是会被缓存的组件--></keep-alive>
2.根据条件缓存部分页面

(更多用法见官网api)

<template>  <div id="app">  // 1. 将缓存 name 为 newsList 或者 productList 的组件      <keep-alive include='newsList,productList'>         <router-view/>      </keep-alive>// 2. 将不缓存 name 为 test 的组件<keep-alive exclude='test'>    <router-view/></keep-alive>  </div></template><script>export default {  name: 'App'}</script>

注意:

还有一步,你必须在需要被缓存状态的组件的script部分,给组件添加一个name属性。 如果没有使用keep-alive缓存状态的组件,可以不写name属性。但是如果使用了keep-alive缓存该组件状态,则此组件必须有这个属性。并且,这个属性的值,还必须跟标签中include属性的值完全一致,包括大小写。 以productList.vue组件为例 

<template>    <!-- 这里是productList组件的html结构部分 --></template><script>export default {    name: "productList",  //如果使用了keep-alive缓存该组件状态,则此组件必须有这个属性。    data(){        return {}    }</script>
3.结合vue-router,缓存部分页面
export default new Router({  mode: 'history',  routes: [    {      path: '/',      name: 'home',      component: Home,      children: [        {          path: 'products',          name: 'products',          component: products,          meta: {        keepAlive: true // 需要缓存        }        },        {          path: 'newsDetails',          name: 'newsDetails',          component: newsDetails,          meta: {        keepAlive: false  // 不需要缓存        }        }      ]    }  ]})

在 App.vue 里面

<template>  <div id="app">    <keep-alive>      <router-view v-if="$route.meta.keepAlive"></router-view>    </keep-alive>    <router-view v-if="!$route.meta.keepAlive"></router-view>  </div></template><script>export default {  name: 'App'}</script>

二、keep-alive 生命周期

包含在 keep-alive 中创建的组件,会多出两个生命周期的钩子: activated 与 deactivated。

1. activated

      在 keep-alive 组件激活时调用。

在组件第一次渲染时会被调用,之后在每次缓存组件被激活时调用。

第一次进入缓存路由/组件,在mounted后面,beforeRouteEnter守卫传给 next 的回调函数之前调用:

页面第一次进入的时候,钩子触发的顺序是created->mounted->activated

因为组件被缓存了,再次进入缓存路由/组件时,不会触发这些钩子:

  beforeCreate created beforeMount mounted 都不会触发。

2. deactivated

      在 keep-alive 组件停用(离开路由)时调用。       

使用了keep-alive就不会调用beforeDestroy(组件销毁前钩子)和destroyed(组件销毁),因为组件没被销毁,被缓存起来了。

这个钩子可以看作beforeDestroy的替代,如果你缓存了组件,要在组件销毁的的时候做一些事情,你可以放在这个钩子里。

  注意:

 使用 keep-alive 会将数据保留在内存中,如果要在每次进入页面的时候获取最新的数据,需要在 activated 阶段获取数据,承担原来created钩子函数中获取数据的任务。

只有组件被 keep-alive 包裹时,这两个生命周期函数才会被调用,如果作为正常组件使用,是不会被调用的,以及在 2.1.0 版本之后,使用 exclude 排除之后,就算被包裹在 keep-alive 中,这两个钩子函数依然不会被调用!

关于keep-alive组件怎么在Vue中使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: keep-alive组件怎么在Vue中使用

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

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

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

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

下载Word文档
猜你喜欢
  • keep-alive组件怎么在Vue中使用
    这篇文章将为大家详细讲解有关keep-alive组件怎么在Vue中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 一、keep-alive 用法< keep-alive> 包...
    99+
    2023-06-14
  • vue中keep-alive组件怎么用
    这篇文章将为大家详细讲解有关vue中keep-alive组件怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。问题描述(什么是keep-alive)keep-alive顾名思义,保持活跃。保持谁活跃呢?...
    99+
    2023-06-15
  • vue内置组件keep-alive怎么使用
    这篇文章主要讲解了“vue内置组件keep-alive怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue内置组件keep-alive怎么使用”吧!一、Keep-alive 是什么k...
    99+
    2023-07-04
  • vue中keep-alive组件的用法示例
    问题描述(什么是keep-alive) keep-alive顾名思义,保持活跃。保持谁活跃呢? 首先我们知道,因为vue就是组件化编程,一个.vue文件就是一个组...
    99+
    2024-04-02
  • LRU算法在Vue内置组件keep-alive中的使用
    目录vue的keep-alive内置组件的使用也是使用了改算法,源码如下:实现一个自己的LRU算法另一种vue的keep-alive内置组件的使用也是使用了改算法,源码如下: e...
    99+
    2024-04-02
  • Vue的keep-alive怎么使用
    这篇文章主要讲解了“Vue的keep-alive怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue的keep-alive怎么使用”吧! 用法 ...
    99+
    2024-04-02
  • Vue 内置组件keep-alive的使用示例
    目录一、keep-alive 用法使用示例: 1.缓存所有页面:2.根据条件缓存部分页面 3.结合vue-router,缓存部分页面二、keep-alive 生命周期 1. acti...
    99+
    2024-04-02
  • Vue中的keep-alive如何使用
    本篇内容介绍了“Vue中的keep-alive如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!keep-alive 是 Vue 的内置...
    99+
    2023-07-05
  • 详解Vue中keep-alive的使用
    目录前言1、概念:2、作用:3、使用方式:前言 keep-alive 是 Vue 的内置组件,当它包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。例如:在开发中经常有从列表跳...
    99+
    2023-03-03
    Vue keep-alive使用 Vue keep-alive
  • Vue中keep-alive有什么用
    小编给大家分享一下Vue中keep-alive有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是 keep-alive...
    99+
    2024-04-02
  • 怎么在keep-alive中使用LRU算法
    怎么在keep-alive中使用LRU算法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。vue的keep-alive内置组件的使用也是使用了改算法,源码如下:export&...
    99+
    2023-06-15
  • vue中keep-alive的作用
    vue中keep-alive的作用:keep-alive属于vue的一个内置组件,它能够使被包含的组件保留状态或避免重新渲染,因此可以用来缓存组件,防止二次渲染,它的用法格式如下:...
    99+
    2024-04-02
  • vue的keep-alive怎么正确使用
    这篇文章主要讲解了“vue的keep-alive怎么正确使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue的keep-alive怎么正确使用”吧! ...
    99+
    2024-04-02
  • vue Keep-alive组件缓存的简单使用代码
    目录Props:用法:一、基本用法二、结合Router使用总结Props: include - 字符串或正则表达式。只有名称匹配的组件会被缓存。 exclude - 字符串或正则表达...
    99+
    2024-04-02
  • vue中使用keep-alive动态删除已缓存组件方式
    目录项目场景问题描述解决方案项目场景 在做后台管理系统的时候,有这样一个需求: 后台的界面如下: 点击左边的菜单,会在右边的顶部生成一个个tag导航标签。当打开多个tag页时,用户...
    99+
    2022-11-13
    vue使用keep-alive keep-alive动态删除 keep-alive删除缓存组件
  • Vue动态组件和keep-alive组件实例详解
    目录动态组件格式注意点使用效果目录结构操作效果小结keep-alive组件使用背景解决方法使用keep-alive组件小结keep-alive组件-指定缓存语法注意:总结动态组件 多...
    99+
    2024-04-02
  • vue的keep-alive中如何使用EventBus
    这篇文章主要介绍了vue的keep-alive中如何使用EventBus,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.keep-aliv...
    99+
    2024-04-02
  • vue2.0中keep-alive怎么用
    这篇文章主要介绍vue2.0中keep-alive怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.基本用法vue2.0提供了一个keep-alive组件用来缓存组件,避免多次...
    99+
    2024-04-02
  • Vue--keep-alive使用实例详解
    目录简介公共代码动态组件实例不加keep-alive加keep-aliverouter-view实例不加keep-alive加keep-alive(加到App.vue里)加keep-...
    99+
    2024-04-02
  • 聊聊对vue内置组件keep-alive的理解
    Keep-alive 是什么?下面本篇文章带大家聊聊对vue内置组件keep-alive的理解,希望对大家有所帮助!一、Keep-alive 是什么keep-alive是vue中的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染...
    99+
    2023-05-14
    keep-alive 前端 JavaScript Vue.js
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作