Kros的博客 Kros的博客
首页
  • CSS
  • 工具
  • Vue
  • js
  • Vue3
  • 算法
  • 折腾笔记
一言
  • 分类
  • 标签
  • 归档
码云

Kros

凡心所向,素履以往,生如逆旅,一苇以航
首页
  • CSS
  • 工具
  • Vue
  • js
  • Vue3
  • 算法
  • 折腾笔记
一言
  • 分类
  • 标签
  • 归档
码云
  • CSS

  • JavaScript

  • 工具

  • Vue

    • vue批量引入组件
    • vue中watch用法
    • vue使用基础JSX语法
    • vue首页白屏
    • vue长列表优化
    • 模板文件中script、template、style存在必要性
    • popup弹窗组件
    • 使用$mount和extend扩展vue
    • 扩展toast合并popup(按需加载)
    • canvas实现弧形进度条
    • vue中使用CSS Modules
    • vue实现无限轮播图
    • vue半圆形菜单
    • 纯CSS实现圆形进度条
    • v-model简单实现
    • vue带箭头下拉框
    • vue事件修饰符
    • vue鼠标悬浮显示提示文字
    • vue添加发布版本号方法
    • vue配置全局样式文件
    • vue在env development中设置全局变量不生效
    • vue引入less或scss全局变量
    • vue中使用Keepalive
    • vue2为什么只支持一个根节点
    • vue打包优化分析工具—webpack-bundle-analyzer
    • vue使用echarts(按需加载)
    • echarts柱形图重合堆叠
    • vue使用draggable实现多列拖拽(解决空列不能拖拽问题)
    • vue禁止三方库打包到bundle中
    • npm run serve运行背后的思考
    • vxe-table树结构不允许insert
    • vue组件延迟加载
    • 多页面应用配置
    • vue项目常用优化
    • vue实现拖动拼图验证码
    • vue虚拟dom
    • canvas心形动画
    • canvas绘制玫瑰曲线
    • element表单validateField验证部分字段
    • element日期选择限制今天以后并精确到小时
    • 前端使用JSEncrypt和node-rsa进行rsa加密传输和接收解密
    • elementui日期选择器生日只选择月和日不选择年并隐藏年份
    • el-upload组件第二次点击手动submit时不生效
    • element表单内输入框使用@keyup enter native回车时会刷新页面
  • antdv踩坑记录

  • Vue3

  • 前端
  • Vue
kros
2023-06-19

vue中使用Keepalive

在Vue中,<keep-alive>组件用于缓存动态组件,以避免在组件切换时重复创建和销毁组件实例,提高性能。它具有一些相关的钩子函数可以用来管理缓存的组件。

使用<keep-alive>组件的基本语法如下:

<keep-alive>
  <component :is="componentName"></component>
</keep-alive>
1
2
3

通过搭配路由来使用

<div>
  <keep-alive v-if="isKeepAlive">
    <router-view />
  </keep-alive>
  <template v-else>
    <router-view />
  </template>
</div>
1
2
3
4
5
6
7
8

当然,vue也提供了<keep-alive>相关的钩子函数:

  1. activated:当缓存的组件被激活时调用,即从缓存中取出并显示时触发。可以在该钩子函数中执行一些需要在组件显示时进行的操作,例如数据的初始化、异步请求等。

普通函数写法:

<keep-alive>
  <component :is="componentName" @activated="onComponentActivated"></component>
</keep-alive>
1
2
3
methods: {
  onComponentActivated() {
    // 组件被激活时执行的操作
  }
}
1
2
3
4
5

钩子函数写法:

// 与created、methods同级
activated() {
   // 组件被激活时执行的操作
},
1
2
3
4
  1. deactivated:当缓存的组件被停用时调用,即组件被缓存起来时触发。可以在该钩子函数中执行一些需要在组件被缓存时进行的操作,例如清除定时器、取消订阅等。

普通函数写法:

<keep-alive>
  <component :is="componentName" @deactivated="onComponentDeactivated"></component>
</keep-alive>
1
2
3
methods: {
  onComponentDeactivated() {
    // 组件被停用时执行的操作
  }
}
1
2
3
4
5

钩子函数写法:

// 与created、methods同级
deactivated() {
   // 组件被停用时执行的操作
},
1
2
3
4
  1. include和exclude:用于指定哪些组件应该被缓存或不被缓存。include是一个字符串或正则表达式,匹配的组件将被缓存;exclude是一个字符串或正则表达式,匹配的组件将不被缓存。

    <keep-alive :include="includeComponents" :exclude="excludeComponents">
      <component :is="componentName"></component>
    </keep-alive>
    
    1
    2
    3
    data() {
      return {
        includeComponents: /ComponentA|ComponentB/,
        excludeComponents: 'ComponentC'
      };
    }
    
    1
    2
    3
    4
    5
    6

    上述示例中,ComponentA和ComponentB将被缓存,而ComponentC不会被缓存。

这些钩子函数可以在<keep-alive>组件中的动态组件上使用,以便在组件被激活或停用时执行相应的操作。通过使用<keep-alive>和相关的钩子函数,你可以更好地管理缓存的组件,并在需要时执行额外的逻辑。

上次更新: 2025/09/05, 8:09:00
vue引入less或scss全局变量
vue2为什么只支持一个根节点

← vue引入less或scss全局变量 vue2为什么只支持一个根节点→

最近更新
01
Find the next perfect square
09-05
02
Regex validate PIN code
09-05
03
Find the odd int
09-05
更多文章>
Theme by Vdoing | Copyright © 2020-2025 kros king
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
icon-heart-o icon-heart icon-infinity icon-pause icon-play link next prev