本文主要是介绍js 沙箱,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
js/css
污染是无法避免的,并且是一个可大可小的问题。就像一颗定时炸弹,不知道什么时候会出问题,排查也麻烦。作为一个基础框架,解决这两个污染非常重要,不能仅凭“规范”开发。
js
沙箱的原理是子项目加载之前,对 window
对象做一个快照,子项目卸载时恢复这个快照,如图:
那么如何监测 window
对象的变化呢,直接将 window
对象进行一下深拷贝,然后深度对比各个属性显然可行性不高,qiankun
框架采用的是ES6
新特性,proxy
代理方法。具体如何操作的,之前的文章有写(链接在文末),就不再赘述。
但是 proxy
是不兼容 IE11
的,为了兼容,低版本 IE
采用了 diff
方法:浅拷贝 window
对象,然后对比每一个属性。
作者:沉末_
链接:https://juejin.cn/post/6844904185910018062
这篇关于js 沙箱的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!