(Vue) 在 main.js 中引入 echarts

需求:

在main.js中 引入echarts,免去在每个组件中引入的重复性工作

尝试解决

.vue 组件内

mounted() {
    this.initCharts()
  },
  methods: {
    initCharts() {
      this.chart = echarts.init(document.getElementById('id'))   //注意此处
      this.setOptions()
    },
    setOptions() {
      this.chart.setOption({
        title: {},
        tooltip: {},
        xAxis: {},
        yAxis: {},
        series: []
      })
    }

main.js

import echarts from 'echarts'

报错:

控制台显示 echarts is not defined

echarts is not defined

最终解决方案

main.js

import echarts from 'echarts'

Object.defineProperties(Vue.prototype, {
  echarts: { get: () => echarts }
});

.vue文件中

    initCharts() {
      this.chart = this.echarts.init(document.getElementById('id'))   // this.echarts 调用
      this.setOptions()
    },

参考:关于在main.js中引入文件的问题

原理

Vue 核心之数据劫持
vue.js关于Object.defineProperty的利用原理

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • vue是什么? vue是构建数据驱动的web界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现...
    九四年的风阅读 12,788评论 2 131
  • 1、active-class是哪个组件的属性?嵌套路由怎么定义?答:vue-router模块的router-lin...
    jane819阅读 5,722评论 0 15
  • 本文章是我最近在公司的一场内部分享的内容。我有个习惯就是每次分享都会先将要分享的内容写成文章。所以这个文集也是用来...
    Awey阅读 13,133评论 4 67
  • 因有点烦恼事影响了练字的心情和时间。昨天没练,今天只写了半张灵飞经和半张吴玉生行楷,一张洛神赋,一章道德经,不是很...
    宜简宜安阅读 1,526评论 0 0
  • 一月: 1. 0106周日游泳20圈@世纪公园 2. 0110周四跑步5公里@长泰健身房 3. 0112周六游泳2...
    周仲云阅读 2,844评论 0 1

友情链接更多精彩内容