当前位置: 首页 > news >正文

Vue:组件缓存

组件缓存 keep-alive

文章目录

  • 组件缓存 keep-alive
    • 一、keep-alive是什么
    • 二、keep-alive优点
    • 三、问题
    • 四、解决方案
      • 五、代码示例
    • 六、回顾一下钩子
    • 七、总结

一、keep-alive是什么

  • keep-alive是Vue中的一个内置组件,会缓存不活动的组件实例。并不会销毁组件,导致重新回到这个页面的时候,重新加载。
  • keep-alive不会渲染DOM元素。

二、keep-alive优点


其目的就是为了防止重复渲染DOM,减少加载时间以及性能的消耗。能够提高用户的体验。

三、问题

  • 包裹了 keep-alive 一级路由都会被缓存
<template><keep-alive>//谁往这里出我就缓存谁<router-view></router-view></keep-alive>
</template>

四、解决方案

include: 组件名数组,只有匹配的组件会被缓存
exclude:组件名数组,任何匹配的组件都不会被缓存
max : 最多可以缓存多少组件实例

  • 注意:这里的组件名:指的是name: 组件名 如果没有自己配置组件名,那么才会是文件名。

  • 需求:如果有两个组件,Layout组件 和 Deteil组件 ,我只想缓存Layout组件

五、代码示例

添加 属性 :include=“组件名数组”

<keep-alive :include="keepArr"><router-view>路由出口</router-view>
</keep-alive>

我们还可以配置组件名数组(需要缓存多个的时候)

data () {return {keepArr: ['Layout']}
}

经过缓存后:通过include属性,缓存了Layout组件,而Deteil组件未被缓存。

  • 被缓存的会多两个生命周期钩子:
  1. actived (激活时,组件被看到时触发)
  2. deactived (失活时,离开页面,组件看不见触发)

六、回顾一下钩子

  • 组件缓存了,就不会执行组件的created mounted 和 destroyed钩子
  • 所以组件缓存会给我们提供两个钩子 actived 和 deactived
created () {console.log('created 组件被加载了')
},
monted () {console.log('monted DOM渲染完了')
},
destroyed () {console.log('destroyed 组件被销毁了')
},
=========================================================
activated () {alert('返回首页')console.log('activated  组件被激活了,看到页面了')
},
deacivated () {console.log('deacivated 组件被失活了,离开页面了')
}

七、总结

  1. keep-alive是什么?
  • Vue内置的组件,包裹动态组件,可以缓存组件
  1. keep-alive有点?
  • 组件切换过程中, 把切换出去的组件保留在内存中(提升性能)
  1. keep-alive的三个属性?
  • include 组件名数组,只要匹配的都缓存
  • exclude 组件名数组, 任何匹配的组件都不会被缓存
  • max 最多可以缓存多少个组件
  1. keep-alive的使用会触发那两个生命周期钩子函数?
  • activated 当组件激活的时候触发该函数 → 进入页面触发
  • deactivated 当组件不被使用的时候触发该函数 → 离开页面触发

http://www.lryc.cn/news/158343.html

相关文章:

  • 【C++】DICOM医学影像工作站PACS源码
  • UDP的可靠性传输2
  • 《Java程序设计》实验报告
  • 数据可视化、BI和数字孪生软件:用途和特点对比
  • Ros noetic 机器人坐标记录运动路径和发布 实战教程(C)
  • Linux入门之多线程|线程的同步|生产消费模型
  • MATLAB解析和保存ini文件
  • 模型压缩-对模型结构进行优化
  • 软件工程课件
  • 基于ADS的marx雪崩电路设计-设计实践(射频脉冲源)
  • X86_64函数调用汇编程序分析
  • Vue3【Provide/Inject】
  • Go-Python-Java-C-LeetCode高分解法-第四周合集
  • vue路由
  • 最强的AI视频去码图片修复模型:CodeFormer
  • jenkins自动化部署安装
  • 如何调用Zabbix API获取主机信息
  • 批量执行redis命令总结
  • 命令行git联网失败,但是实际可以联网
  • 网络编程套接字,Linux下实现echo服务器和客户端
  • java+ssh+mysql智能化办公管理系统
  • 网络层抓包tcpdump
  • QT之形态学操作
  • 15、监测数据采集物联网应用开发步骤(11)
  • Pygame中Trivia游戏解析6-2
  • java 实现命令行模式
  • A - Orac and Models(最长上升子序列——加强版)
  • 【python手写算法】逻辑回归实现分类(含公式推导)
  • 【2023高教社杯数学建模国赛】ABCD题 问题分析、模型建立、参考文献及实现代码
  • yum安装mysql5.7散记