qiankun子应用vue加载js资源失效问题解决

场景描述:

        当使用qiankun框架时通常会存在一个基座对应多个微应用,不同微应用中很可能会用到不同的资源,所以子应用单独引入外部js资源就尤为重要,主要分为以下两步:

1,在基座中创建白名单字段

// 在入口方法的whiteWords 中创建白名单字段, 比如cdn_js
start({
      // 指定部分特殊的动态加载的微应用资源(css/js) 不被 qiankun 劫持处理
      excludeAssetFilter: (assetUrl) => {
        const whiteList: any = [];
        const whiteWords = [ 'cdn_js'];
        if (whiteList.includes(assetUrl)) { return true; }
        return whiteWords.some((w) => assetUrl.includes(w));
      },
    });

 2,在微应用中需要使用该资源的vue文件中动态引入

 /**
 * @description: 动态加载资源方法
 * @param {string} 要加载的外部资源链接
 * @return {*}
 */  
const loadUrl = (url:string){
  const script = document.createElement('script');
  script.setAttribute('type', 'text/javascript');
  script.setAttribute('src', url);
  const head = document.getElementsByTagName('head');
  if (head.length) {
    head[0].appendChild(script);
  } else {
    document.documentElement.appendChild(script);
  }
}
// 目标外部js资源地址+ '?'+'白名单字段'
loadUrl('http://ip:port/xxxx/xxxx.js?cdn_js');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值