vue加载外部组件

vue加载外部组件

export default async function externalComponent(url) {
  const name = url.match(/(\w+).js$/)[1]
  if (window[name]) return window[name];

  window[name] = new Promise((resolve, reject) => {
    const script = document.createElement('script');
    script.async = true;
    script.addEventListener('load', () => {
      resolve(window[name]);
    });
    script.addEventListener('error', () => {
      reject(new Error(`Error loading ${url}`));
    });
    script.src = url;
    document.head.appendChild(script);
  });

  return window[name];
}

猜你喜欢

转载自blog.csdn.net/ithunzi/article/details/130412860
今日推荐