当前位置: 首页 > 知识库问答 >
问题:

echarts - 静态H5的Vue项目如何在单文件组件中实现动态加载依赖?

孟意致
2023-11-27

单文件组件所需的依赖如何在组件被使用的时候才动态引入?

// let chart = require('../../js/echarts.min.js')let UcMobileChartsContainer = {  name: "UcMobileChartsContainer",  props: {    config: {      type: Object,      default: () => {},    },    GUID: {      type: String,      default: ''    }  },  data() {    return {};  },  template: `<div>               <div id="charts-wrapper"></div>             </div>`,  // mixins: [commonMinxin],  computed: {},  methods: {  },}

上文代码中,我想开发一个echarts的单文件组件,因为项目没有用脚手架,所以组件只能以单文件组件的形式开发。这个时候就产生了一个问题,如果需要给每一个引用到该组件的页面都加上script标签引入echarts依赖显然是非常繁琐和呆板的。所以想找一种动态引入的方式,只需要将echarts组件和静态页面放入固定的路径下,引用到这个组件的时候,自动引入charts依赖。类似与Node下的require()


(() => {  globalThis.document.write(`<script src="../../js/echarts.min.js"></script>`)})()

尝试在js文件中直接wirte script标签,但是用hasOwnProperty在globalThis上查找echarts是undefined。本地源代码中发现script标签是写进去了,打印globalThis中有echarts,但是代码里直接打印globalThis.echarts是undefined,还不清楚原因

共有1个答案

法兴德
2023-11-27
export default {  // ...  mounted() {    if (!window.echarts) {      const script = document.createElement('script');      script.src = "https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js";      script.onload = () => {        window.echarts = true;         this.initializeChart();      };      document.head.appendChild(script);    } else {      this.initializeChart();    }  },  methods: {    initializeChart() {      // 初始化 ECharts 图表    }  }};
 类似资料:
  • 我正在尝试将SwaggerUI嵌入到我的vuepress站点中。我走了这么远 在我的插件我有: 这是我试过的一些其他东西 这让我很生气 但这是可行的

  • 本文向大家介绍vue如何实现动态加载脚本,包括了vue如何实现动态加载脚本的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了vue如何实现动态加载脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天在研究,tinymce富文本编辑器怎样在vue中使用,然后看到其它框架上的使用方法,它是动态加载tinymce脚本的,若果在本地引入静态

  • 问题内容: 我的代码在构造后的某个地方: 我尝试了这个: 项目结构 : 题: webpack如何复制到? 问题答案: 您用于请求JSON文件,而这只会在运行时发生。此外,webpack只处理导入的任何内容。您希望它可以处理函数的参数,但是如果webpack这样做,则函数的每个参数都将被视为模块,这会破坏该函数的其他用途。 如果您希望装入程序启动,则可以导入文件。 您还可以导入JSON并直接使用它,

  • 在Vue项目实现文件下载的时候遇到一个问题,无论是使用a标签还是使用windown.open(url)都只会在网页打开预览,但是都不能下载,请问这是什么问题?应该如何去避免从而实现下载功能呢?查了好久资料,来来去去都是那一片文章抄来抄去,实在让人难受!!!这些粘贴怪真恶心!!!

  • 问题内容: 我有以下代码: 它不起作用。我给了两个按钮,如果按下第一个,则应该加载。如果第二个被按下,则应加载。 我怎样才能做到这一点? 问题答案: 您不能以这种方式将HTML嵌入Javascript。基本上,您想要的是嵌入一个脚本元素,单击按钮时指向某个javascript文件。可以通过将事件与DOM结合来完成: