码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Keep-Alive中通过component多次加载同样的动态组件无法保持状态的解决办法


    Keep-Alive中通过component多次加载同样的动态组件无法保持状态的解决办法

    Keep-Alive中通过component多次加载同样的动态组件无法保持状态的解决办法 | 软件开发服务商 (yidianhulian.com)icon-default.png?t=N7T8https://yidianhulian.com/?p=12263

    问题描述

    项目功能上有需要动态添加组件的需求,比如tab标签功能,动态添加标签,同时添加后的标签在切换时需要保存状态,自然而然想到了keep-alive,这就有了下面的代码:

    tabPage 定义方式1:

    通过components事先定义好所有会加载的组件:

    tagPage 通过ref或computed的方式判断当前的标签的类型并返回:

    这个时候keep-alive是工作的,但这里的问题是:

    动态创建的组件有多个是同一个组件,比如APIAdd,

    由于keep alive的缓存机制是通过组件名称来缓存的,同一个组件被打开多次的话其实显示的还是第一次打开的那个,这和我们实际的应用场景不符合,不能缓存界面状态(比如表单中输入的内容):

    tabPage 定义方式2:

    为了解决方式1中的同名组件只能加载一次的问题,需要同一个组件被加载多次,只是里面展示的内容不一样,所以tabPage通过defineAsyncComponent异步加载:

    这里组件能加载成功,同名组件每次创建标签都会生成一个新的,但是这里的问题是:

    没有起到keep-alive的效果,已经加载的组件,在切换时又重新创建了组件, 状态自然也没有得到保存,:

    解决办法:

    为了解决同一个组件可以被动态加载多次,同时需要能keep-alive,解决的办法就是不用component,而是把所有动态添加的组件都各自放在一个keep-alive中,根据条件切换显示即可:

    这样每个组件都可以加载自己的数据,并且可以keep alive保存状态:

  • 相关阅读:
    ue5 小知识点 ue的world type,pie editor game
    第二届中国未来交通产业发展峰会在深举办 聚焦智能网联、低空经济
    Android 广播的注册和收发原理
    Google Chrome 任意文件读取 (CVE-2023-4357)漏洞
    Ubuntu18.04 在Anaconda中配置YOLOv3-Pytorch-GPU环境配置
    list的模拟实现
    智能文档图像处理技术:解决大数据时代文档图像处理难题
    android——Livedata、StateFlow、ShareFlow和Channel的介绍和使用
    Vue中动态绑定属性
    蚂蚁金服开源的这份SpringBoot笔记,两周时间在GitHub星标43.5k
  • 原文地址:https://blog.csdn.net/libol/article/details/134251115
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号