前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >qiankun + vue 中使用 keep-alive 维持微应用实例

qiankun + vue 中使用 keep-alive 维持微应用实例

作者头像
copy_left
发布2021-03-02 10:56:22
3K3
发布2021-03-02 10:56:22
举报
文章被收录于专栏:方球方球

image.png

背景

qiankun + vue2.6 + element-ui, 通过标签却换不同功能, 当前一个子应用下可以对应多个功能, 及 存在统一应用下切换,跨应用切换。 当前已通过路由嵌套实现子应用独立管理各自路由,主应用负责跨应该路由切换。子应用使用手动加载。

目的

  • 同时维持多个子应用实例
  • 应用切换不丢失
  • 加载失败时,可二次重载
  • 需要同时维持多个子应用实例
  • 子应用加载成功后切换不丢失
  • 子应用加载失败后可重载

问题

  • 手动加载子应用失败后,二次加载乾坤未重载的应用
  • 子应用切换后将丢失,造成多次需要重复加载
  • 初始加载时间过长

主要的目的是尽量减少子应用的二次加载,避免资源的重复请求.

方案

触发重载

image.png

加载失败后,我们需要用户再次开启功能时,进行重载。 而qiankun当前对统一子应用做的缓存处理,首先需要触发qiankun 重载。参考 这里在构建配置文件时,为请求地址添加一个更新编号, 当需要重载时,更新该编号, 再次手动加载时,将触发子应用的二次加载.

维持实例

这里通过keep-alive 保存我们子应用实例。需要解决的问题是,当应用加载失败时, 我们需要通知keep-alive 排除之前保存的实例对象。 所以需要设置 exclude 属性. 加载子应用时,监听加载结果。成功: exclude 组件名出栈, 失败:exclude 组件名入栈.

image.png

image.png

image.png

需要注意的是, keep-alive 是通过组件名称判断缓存的, 所以在加载前,我们需要先为每个子应用分配独立的组件并注册到容器组件中.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 目的
  • 问题
  • 方案
    • 触发重载
      • 维持实例
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档