qiankun沙箱实现原理

浅谈乾坤JS隔离的三种机制(快照沙箱、两种代理沙箱) 从上面的代码可以看出,ProxySandbox不存在状态恢复的逻辑,因为所有的变化都是沙箱内部的变化,和window没有关系,window上的属性自始至终都没有受到过影响。支持多应用的代理沙箱则可以为每个微应用创建一个独立的沙箱环境,避免了多个应用之间的状态混乱问题。支持多应用的代理沙箱则可以支持多个微应用同时运行,因为它可以为每个微应用创建一个独立的沙箱环境,避免了多个应用之间的状态混乱问题。同时,支持多应用的代理沙箱也不需要遍历window上的所有属性,因为它只会代理微应用需要的属性,从而提高了性能。 阅读详情

前言

  Qiankun 设置沙箱(Sandbox)主要是为了实现子应用之间的隔离,防止子应用之间的全局变量污染和副作用。Qiankun 使用了多种技术手段来实现这一目标,包括但不限于 JavaScript 的 Proxy 对象、自定义的全局变量管理等。

Qiankun 沙箱实现原理

Qiankun 的沙箱实现主要通过以下几个步骤来完成:

1.全局变量隔离:

  • Qiankun 使用 Proxy 对象来拦截对全局变量的访问和修改。
  • 当子应用试图访问或修改全局变量时,Qiankun 会捕获这些操作,并在沙箱环境中进行处理。

2.DOM 操作隔离:

  • Qiankun 通过创建一个虚拟的 DOM 环境来隔离子应用的 DOM 操作。
  • 子应用的 DOM 操作会被映射到这个虚拟的 DOM 环境中,从而不影响主应用和其他子应用。

3.事件隔离:

  • Qiankun 会对子应用中发生的事件进行监听和管理,确保事件不会影响到全局范围。

具体实现细节

使用 Proxy 对象

  Qiankun 使用 Proxy 对象来拦截对全局变量的操作,从而实现全局变量的隔离。

const sandbox = {
   
   
  global: window,
};

const proxyHandler = {
   
   
  get(target, key) {
   
   
    // 拦截对全局变量的访问
    return Reflect.get(sandbox.global, key) || target[key];
  },
  set(target, key, value) {
   
   
    // 拦截对全局变量的修改
    sandbox.global[key] = value;
    return true;
  },
};

// 创建一个全局变量的代理对象
window = new Proxy(sandbox, proxyHandler);

2.DOM 操作隔离

  Qiankun 通过创建一个沙箱 DOM 环境来隔离子应用的 DOM 操作。

function
qiankun原理解析 qiankun 是一个基于single-spa框架实现的一个微前端框架,single-spa虽然实现了路由劫持和应用加载,但是没有实现样式隔离和js隔离,并不是一个完善的微前端框架; 阅读详情

相关推荐

微前端学习笔记(3):前端沙箱之JavaScript的sandbox(沙盒/沙箱)

多实例运行语法兼容不污染全局环境(主应用)❌❌❌✅❌✅❌✅❌iframe✅✅✅转载本站文章《微前端学习笔记(3):前端沙箱之JavaScript的sandbox(沙盒/沙箱)》,微前端学习笔记(3):前端沙箱之JavaScript的sandbox(沙盒/沙箱) - 前端架构设计 - 周陆军的个人网站。

周陆军的博客,分享it技术。 2419

万字长文+图文并茂+全面解析微前端框架 qiankun 源码 - qiankun 篇

写在开头 微前端系列文章: 基于 qiankun 的微前端最佳实践(万字长文) - 从 0 到 1 篇 基于 qiankun 的微前端最佳实践(图文并茂) - 应用间通信篇 基于 qiankun 的微前端最佳实践(图文并茂) - 应用部署篇 万字长文+图文并茂+全面解析微前端框架 qiankun 源码 - qiankun 篇 本系列其他文章计划一到两个月内完成,点个 关注 不迷路。 计划如下: 生命周期篇; IE 兼容篇; 性能优化、缓存方案篇; 概述 本文将针对微前端框架 qiankun 的源码.

mingyuanyunlian的博客 2549

微前端框架实战指南:Qiankun、Single-SPA、Wujie 如何选型与落地?

本文深入对比了三大主流微前端框架Qiankun、Single-SPA和Wujie的核心特性与适用场景。Qiankun提供开箱即用的沙箱隔离,适合快速整合异构技术栈;Single-SPA高度灵活,适合深度定制;Wujie基于iframe实现零改造集成,适合绝对隔离需求。文章通过实战决策矩阵,帮助开发者根据项目特点进行精准选型与落地。

v6b7n8m9q0的博客 1094

qiankun微前端架构核心原理与实战指南

微前端架构通过解耦巨石应用为独立模块,实现技术栈无关的渐进式开发。其核心原理包含HTML Entry资源加载机制、基于Proxy的JS沙箱隔离和动态样式表管理,有效解决了多技术栈共存和样式污染问题。在工程实践中,这种架构显著降低旧系统改造成本约60%,特别适合中后台系统和技术栈迁移场景。以qiankun为代表的解决方案支持React、Vue等框架混合开发,通过预加载和资源复用可使应用加载速度提升40-60%,现已成为金融、电商等领域的主流微前端实施方案。

weixin_31155097的博客 99

微前端架构实战:qiankun原理、沙箱隔离与性能优化指南

前端应用规模膨胀时,单体仓库的编译效率、团队协作和发布流程都会成为瓶颈。微前端架构通过将应用拆分为多个可独立开发、独立部署的子应用,从物理边界上化解耦合问题。qiankun 作为国内主流方案,基于 single-spa 封装了 JS 沙箱与样式隔离机制,利用 Proxy 代理隔离全局变量,通过 Shadow DOM 或选择器前缀防止样式污染,从而支撑多团队在统一产品中并行迭代。它带来的价值在于提升发布灵活性和团队自治能力,但也需要额外承担通信、隔离与运维成本。适用场景包括多团队共用一个中后台系统、子模块生命

weixin_28475533的博客 309

qiankun微前端架构实战:从原理到最佳实践

微前端架构通过将单体应用拆分为独立子应用,解决了大型前端项目的维护难题。其核心原理包括应用隔离、独立部署和技术栈无关性,其中JS沙箱和样式隔离确保子应用间互不干扰。qiankun作为阿里开源的微前端解决方案,通过HTML Entry机制优化资源加载,相比传统JS Entry减少冗余依赖。在实际工程中,这种架构特别适合中后台系统、多团队协作等场景,能显著提升开发效率和部署灵活性。本文以qiankun为例,详解主-子应用搭建、通信机制和性能优化策略,并分享样式隔离、路由冲突等常见问题的解决方案。

weixin_29280219的博客 199

深入解析qiankun微前端框架原理与实战

微前端架构是现代前端工程化的重要解决方案,通过将单体应用拆分为多个独立子应用,实现技术栈无关性和独立部署。其核心原理包括应用注册、沙箱隔离、资源加载和生命周期管理。qiankun作为基于Single-SPA的微前端框架,提供了完整的JS/CSS沙箱隔离、HTML Entry资源加载和全局状态通信机制,大幅降低了微前端实施门槛。在大型企业级应用中,该技术能有效解决多团队协作、技术栈迁移和性能优化等工程难题。特别是在金融、电商等复杂业务系统中,通过qiankun实现的渐进式迁移策略,既能保证系统稳定性,又能实现

weixin_29722783的博客 184

微前端架构常见框架

本文分析了多种微前端实现方案及其优缺点。传统iframe方案存在URL状态丢失、UI不同步、通信困难等问题。single-spa框架通过生命周期管理实现微前端,但需处理样式隔离、JS隔离等挑战。qiankun基于single-spa优化,采用Proxy实现沙箱隔离,但全局弹窗等问题仍有待解决。ModuleFederation通过Webpack实现模块共享,适合模块化场景。字节Garfish提供完整生命周期管理,支持手动控制子应用。

分享前端工程化、AI 应用、Agent 开发与大模型实践! 1335

蚂蚁前端面试复盘:从事件循环到微前端的实战指南

前端开发者在进阶过程中,不仅要掌握框架API,更要深入理解JavaScript事件循环、浏览器渲染机制等底层原理。大厂面试尤其注重考察候选人对这些基础概念的深度理解,并会通过项目深挖验证工程实践能力。从事件循环与渲染时机的关联,到微前端架构中的沙箱实现与样式隔离,再到性能优化的量化分析与虚拟列表的手写实现,这些高频考点共同指向一种能力:能否把知识串成体系并落地到真实场景。本文基于一线大厂前端面试的真实经历,按轮次拆解了从技术初面到HR面的完整流程,复盘了面试中的典型追问路径与常见误区,并总结了项目复盘、手写

weixin_29007135的博客 371

字节跳动前端面试全攻略:高频考点与系统设计

前端开发领域,系统设计与工程化能力已成为大厂面试的核心考察点。从技术原理层面,虚拟DOM、响应式系统等框架设计思想决定了应用性能上限;而Webpack、Babel等工具链的深度理解则体现工程实践能力。在字节跳动等一线互联网企业的面试中,候选人常需应对手写Promise.all、微前端架构设计等典型场景题,这些题目既考察JavaScript语言特性掌握,也检验系统思维。优秀的解决方案往往需要结合HTTP/2、WebSocket等网络协议特性,以及缓存策略、懒加载等性能优化手段。特别值得注意的是,React H

weixin_29021291的博客 277

React微前端实战:qiankun沙箱原理与生产级落地指南

微前端是一种将单体前端按业务域拆分为独立子应用的架构范式,其核心原理是通过运行时容器实现隔离与协同。技术价值在于解决多团队并行开发中的构建耦合、发布冲突和维护成本问题,显著提升中大型前端组织的交付效率与系统韧性。典型应用场景包括电商后台、企业中台、BI平台等存在多业务线长期共存需求的系统。本文聚焦React生态下qiankun框架的深度实践,涵盖Proxy沙箱机制、样式隔离实现、子应用生命周期管理及Webpack构建避坑等关键环节,为工程化落地提供可复用的技术路径。

weixin_30876945的博客 620

Qiankun 微前端框架全面解析:架构、原理与最佳实践

Qiankun是阿里巴巴开源的一款微前端框架,它基于single-spa进行封装,提供了更简单的API以及更强的隔离能力,适用于多种前端框架(Vue、React、Angular)。灵活的子应用管理完善的应用隔离机制高效的状态管理与通信优化的加载性能在企业级项目中,Qiankun可以帮助团队更好地拆分前端应用,提升开发效率与可维护性。如果你正在考虑微前端架构,Qiankun是一个值得尝试的选择!如有问题,欢迎留言讨论!

赵大仁的博客 1687

微前端-qiankun

借鉴了微服务的概念,将一个放大的巨石应用拆分多个独立灵活的小型应用,每个应用过都可以独立开发、独立运行、独立部署,还可以随意组合,降低耦合度,更灵活。:在面对各种复杂场景时,我们通常很难对一个已经存在的系统做全量的技术栈升级或重构,而微前端是一种非常好的实施渐进式重构的手段和策略。qiankun :产由阿里巴巴,基于single-spa,在它的基础上增加了很多功能。:微应用仓库独立,前后端可独立开发,部署完成后主框架自动完成同步更新。:主框架不限制接入应用的技术栈,微应用具备完全自主权。

weixin_44922119的博客 2653

【高频考点精讲】微前端架构实战:qiankun框架的核心原理和应用场景

🧑‍🏫:全栈老李📅:2025 年 6 月🧑‍💻:前端初学者、进阶开发者🚀:本文由全栈老李原创,转载请注明出处。大家好,我是全栈老李。今天咱们来聊聊微前端这个热门话题,特别是qiankun这个国产框架。最近几年,微前端在前端圈子里越来越火,但很多同学对它的理解还停留在"把几个项目拼在一起"的层面。今天我就带大家深入剖析qiankun的核心原理,顺便分享几个实战中的坑和技巧。

全栈老李的博客 1267

微前端知识内容

Shared State(全局状态管理):使用 qiankun 提供的 initGlobalState,或者采用 Redux、Pinia 等库共享状态。registerMicroApps() 方法用于注册子应用,配置 name、entry、container、activeRule 等参数。如果你有特定项目上的挑战,也可以详细探讨。主要基于 single-spa,并进行二次封装,提供更好的 应用加载管理、沙箱隔离、应用通信 能力。通过劫持路由(Hash/History),监听路径变化,加载对应的子应用。

weixin_45825917的博客 306

qiankun微前端原理及部分源码解读

微前端qiankun原理及源码解读

lyn1772671980的博客 1927

【STM32项目】老人健康跌倒检测系统实现(附教程PCB资料)

功能概述 跌倒检测 倾倒告警,人体角度倾斜至阈值触发蜂鸣报警 异常运动,加速度超过正常行动阈值时触发报警 心率监测 实时检测心率数据 血氧监测 实时检测采集血氧 血压测量 血压在线测量 红外体温 非接触体温采集方案 接触式体温采集方案 实时定位 中科微GPSGT-U12双频GPS北斗 GLONASS IRNSS定位系统 NEMA数据解析 可扩展高精度定位方案厘米级 屏幕显示 数据采集显示 告警阈值设置 语音提示 1欢迎使用老人智慧监测系统

洋洋的博客 1万+

Marvell 88E6390x交换芯片:从零构建No-CPU模式网络交换系统

本文详细介绍了如何为Marvell 88E6390x以太网交换芯片构建No-CPU模式网络交换系统。通过解析其核心价值与硬件准备,并手把手指导使用CodeBlocks、IMPGUI和SwitchGUI等软件工具进行配置代码编写、镜像生成与烧录,最终实现交换芯片脱离外部CPU独立工作,适用于成本敏感、空间受限的嵌入式网络设备设计。

plant的博客 482

基于MobileNet⁃DOA的无人机射频信号识别方法

本文提出了一种基于MobileNet-DOA模型的无人机射频信号识别方法,用于解决低信噪比环境下无人机型号和飞行模式识别率低的问题。该方法首先采用变分模态分解(VMD)进行信号预处理以降低噪声干扰,然后通过短时傅里叶变换(STFT)将信号转换为时频图。在模型设计上,将DOConv卷积融入MobileNetv4模型以增强特征提取能力并提高运算速度,同时引入FA注意力机制提升低信噪比环境下的识别精度。实验结果表明,该方法在-15~15dB信噪比范围内的平均识别准确率达到94.83%,显著优于现有方法,特别在-1

qq_43416206的博客 1349

WiFi基本概念(六)(L-STF,L-LTF)

L-STF它由10个OFDM symbol(1,0,1,0,1,0,1,0,1,0)构成,每个symbol是0.8us,GI是0.2us,总计10us。Symbol的长度是正常长度的1/4,因此称为Short training field,主要用于快速进行信号检测,信号同步,自动增益控制,接收天线选择(Diversity Selection)。 由于symbol长度是正常的1/4,子载波的宽度是正常的4倍,能进行初略的信道估计,其使用了-24, -20, -16, -12, -8, -4, 4, 8, 1

reekyli的专栏 6861

从 SOAUTH2 到系统用户,SAP AS ABAP 里配置 OAuth 2.0 Client 的完整落地思路

SAP OAuth 2.0客户端配置的核心在于建立系统级信任关系。在AS ABAP中,每个OAuth 2.0客户端必须关联一个System类型的用户账号(通过SU01创建),并建议采用业务语义明确的命名规范(如ZBTP_PO_APPROVAL_APP)。关键配置包括:客户端认证方式(推荐SSL证书而非共享密钥)、Token生命周期(默认3600秒)、Scope访问范围,以及根据应用场景选择Authorization Code或SAML 2.0 Bearer等授权模式。项目实践中应避免混合配置不同授权类型,而

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 986

新手必读!2025最全AI智能体入门手册,50个问题全讲透

感知(Perception):能读取环境,比如读取网页数据、识别用户输入、接入 API;思考(Reasoning/Planning):理解任务目标,规划出行动步骤;行动(Action):调工具、查资料、发消息、写入数据库……直接执行任务。有了这三步,智能体才不是“一个会说话的大模型”,而是真正的“能落地执行的工作代理人”。多个 Agent 分工协作,每个智能体负责一个角色或任务节点,像一个“虚拟团队”。一个爬数据的 Agent,一个提炼要点的 Agent,一个撰写报告的 Agent,

互联网架构师笔记 1967

【软件定义汽车】-【架构篇】-全面讲解整车电子电气架构演进

前言: 前段时间,陆陆续续写了一些电子电气架构相关的文章。这里打算再写最后一篇作为收尾,为整个系列画上句号,把坑填上,这个话题就算过去了。后续一段时间,尽量把之前文章中挖的“坑”填一下。行文逻辑将借鉴5W2H进行。 另外,本文作为一篇整合性的文章,为保证逻辑的完整性,主要是将大量过去自己文章中的内容进行梳理整合,也存在很多行业内专家的公开文章的内容,请见谅。 WHAT1:什么是汽车电子电气架构? 电子电气架构:EEA,Electrical/Electronic Architecture.

零点壹客的博客 1万+

vue3+vite:引入tailwindcss不生效的原因,详细解决Tailwind配置没问题但就是不生效的情况,配置正确无报错但样式没有生效(包括tailwindcss在Vue2使用不生效解决方案)

vue3 tailwind使用教程以及tailwind不生效的问题,vue3+vite引入tailwindcss不生效的原因,tailwindcss配之后不生效怎么办,如何解决tailwinscss不生效的原因,Vue3项目使用tailwindcss在Vue2使用,不生效解决,如何解决使用 Tailwind CSS 后出现的样式不生效的问题?tailwindcss配之后不生效 tailwindcss不生效,为什么我的 Tailwind css 类没生效,解决使用 Tailwind 时样式不生效的问题,配置没

✅ 精选推荐文章 4127

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

上一篇: 前端常见面试题
下一篇: 如何使用 Next.js 进行服务端渲染(Server-Side Rendering, SSR)
不见浅诗~
博客等级 码龄7年 506粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值