微前端(十一)子应用注意window的使用

编程入门 行业动态 更新时间:2024-10-26 19:40:30

微前端(十一)子应用注意<a href=https://www.elefans.com/category/jswz/34/1768041.html style=window的使用"/>

微前端(十一)子应用注意window的使用

子应用切记禁慎 window对象的使用
类似这种代码

 queryAllAccounts:`${window.projectName.loginDes}/component/allTenant`,

这种代码开发可能是ok的,但放入到乾坤后发现代码不好使了。

原因就是window对象的使用,因为放入乾坤后的window是主应用的window对象了,而不是子应用的window。
解决方案:
1、则需要将window.projectName对象注册到主应用才行。
2、最好的做法还是子应用尽量不要使用window对象来获取自定义的对象。

再就是window对象也会存在这个问题
比如:

function _closeMoreQueryById(targetObj, moreQueryPanelId) {$("#" + moreQueryPanelId).removeClass("fadeInRight").addClass("fadeOutRight");setTimeout(function () {$("#" + moreQueryPanelId).hide();$(".more-query-cover").remove();}, 300);$(targetObj).hide();
}
window._closeMoreQueryById=_closeMoreQueryById;

再通过

   $(`<div class='page-cover more-query-cover'  style="z-index: ${GoingUtils.getCurMaxZIndex()}" onclick="window._closeMoreQueryById(this,'${moreCtl.moreQueryPanelId}');"></div>`).appendTo($("#" + moreCtl.moreQueryPanelId).parent());

这种代码也是执行不了的。
解决方案:
1、当然就是不要写这种js代码,改成vue的事件方式
2、如果感觉改动太大,那就把代码放到main框架端去。

如果立即执行的代码比如window.a=a; 这时候的window是子应用,如果是按钮里面触发的window.b这时候的window是主应用。

如果你按钮里面再想获取window.a则就没有了,因为window对象已经变化了

更多推荐

微前端(十一)子应用注意window的使用

本文发布于:2024-02-06 16:10:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1750457.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:window

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!