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

vue keep-alive多层级路由支持

keep-alive使用

属性值

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

注:匹配首先检查组件自身的 name 选项,如果 name 选项不可用,则匹配它的局部注册名称 (父组件 components 选项的键值)。匿名组件不能被匹配

会执行的两个生命周期

activated(){console.log("keep进入")if(this.activeName!='1'){this.activeName='1'}},deactivated(){console.log("keep离开")}

问题:vue 内置的缓存组件keep-alive,缓存的只有第一层的组件
类似于这样的多层级组件是无法支持的
在这里插入图片描述
我们项目里的路由还是动态的,其实跟上面一样 主要处理

item.component = { render: (e) => e(‘router-view’) }
这个是router-view容器 当你这一层不需要组建的时候 用的 在这里插入图片描述
其实逻辑也就是循环遍历后端返回数据,根据key动态的加载页面

解决: 使用keep-alive include属性

  • 1。直接平铺路有,这个不建议,很多路有菜单都是在侧边栏有层级的
  • 2.这里采用第二种
    1)新建MenuMain.vue组件如下
// src/layout/component/MenuMain.vue
// 提供多级菜单的容器
<template><keep-alive :include="cachedViews"><router-view :key="key" /></keep-alive>
</template><script>
export default {name: 'MenuMain', // 必须命名computed: {cachedViews() {return this.$store.state.tagsView.cachedViews},key() {return this.$route.path}}
}
</script>

2)将此容器取代处理数据时render的 router-view 容器
在这里插入图片描述
3)include 数组始终都有 允许MenuMain缓存

cachedViews: ['MenuMain']

cachedViews缓存数组 用在 menuMain。vue中 和 你的入口 app.vue router-view

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

相关文章:

  • 从源码角度看React-Hydrate原理
  • ARM基础 -- 2
  • Java 类型转换
  • 【Java开发】JUC基础 05:线程通信/协作
  • 哪些工具可以实现在线ps的需求
  • 如何使用C2concealer生成随机化的C2 Malleable配置文件
  • 网络基础之IP地址和子网掩码
  • G1D54-CRF
  • vue3 使用defineAsyncComponent与component标签实现动态渲染组件
  • Linux下 C/C++ NTP网络时间协议详解
  • Pytest自动化框架-权威教程02-Pytest 使用及调用方法
  • 大数据技术——概述
  • java-代理模式
  • 路由网络的构建与配置
  • 软件测试-接口测试-数据库管理
  • 【华为OD机试 】天然蓄水库(C++ Java JavaScript Python)
  • 普元EOS中导出excl页面下载
  • 内存的管理
  • OpenFeign 切换HttpClient遇到的问题
  • 流计算框架storm概览
  • 如何使用Coercer强制Windows Server认证任意主机
  • 【小程序】已有公众号认证,一步一步申请小程序(图文)
  • Redis学习笔记:缓存运用常见问题
  • 使用python 脚本挑出coco 数据集中的某一类数据
  • Python虚拟环境(pipenv、venv、conda一网打尽)[通俗易懂]
  • Android Kotlin实战之高阶使用泛型扩展协程懒加载详解
  • 数字映射:数字孪生技术的应用场景及作用
  • 配置二层远程端口镜像案例
  • Linux-0.11 kernel目录fork.c详解
  • 如何或者无插件Web页面监控播放软件LiveNVR的固定视频流地址,实现大屏上墙、播放、视频分析等目的