在vue3 中使用echarts

在vue3 中使用echarts1,安装echartsnpminstallecharts–save有cnpm的可以cnpm安装2,在main.js中导入import{createApp}from’vue’importAppfrom’./App.vue’import*asechartsfrom’echarts’constapp=createApp(App).mount(‘#app’)app.echarts=echarts3,在需要使用的页面,定义div&lt

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

在SetUp中使用echarts

 在setup中可以直接引入文件

import { onMounted } from "vue";
import * as echarts from 'echarts'
export default {
  name: "data_page",
  setup() {
    onMounted(() => {//需要获取到element,所以是onMounted的Hook
      let myChart = echarts.init(document.getElementById("customerChart"));
      // 绘制图表
      myChart.setOption({
        title: { text: "总用户量" },
        tooltip: {},
        xAxis: {
          data: ["12-3", "12-4", "12-5", "12-6", "12-7", "12-8"],
        },
        yAxis: {},
        series: [
          {
            name: "用户量",
            type: "line",
            data: [5, 20, 36, 10, 10, 20],
          },
        ],
      });
      window.onresize = function () {//自适应大小
        myChart.resize();
      };
    });
  },
  components: {},
  mounted() {},
};

Jetbrains全家桶1年46,售后保障稳定

因为setup中没有this,而且这时候还没有渲染,所以在setup中 ,也可以使用provide/inject来把echart引入进来

在根组件里引入echart,一般是App.vue

App.vue:

import * as echarts from 'echarts'
import { provide } from 'vue'

export default {
  name: 'App',
  setup(){
    provide('ec',echarts)//provide
  },
  components: {
  }
}

之后在需要的页面中inject

这种方法可以统一管理引入的echarts

data_page.vue:

import { inject, onMounted } from "vue";

export default {
  name: "data_page",
  setup() {
    let echarts = inject("ec");//引入
    onMounted(() => {//需要获取到element,所以是onMounted的Hook
      let myChart = echarts.init(document.getElementById("customerChart"));
      // 绘制图表
      myChart.setOption({
        title: { text: "总用户量" },
        tooltip: {},
        xAxis: {
          data: ["12-3", "12-4", "12-5", "12-6", "12-7", "12-8"],
        },
        yAxis: {},
        series: [
          {
            name: "用户量",
            type: "line",
            data: [5, 20, 36, 10, 10, 20],
          },
        ],
      });
      window.onresize = function () {//自适应大小
        myChart.resize();
      };
    });
  },
  components: {},
  mounted() {},
};

另外是使用app上的属性(这个方法目前已经不行了,因为vue已经不允许这种挂载方式)

1,安装echarts

npm install echarts --save

有cnpm 的可以cnpm安装

2,在main.js中导入

import { createApp } from 'vue'
import App from './App.vue'
import * as echarts from 'echarts'

const app = createApp(App).mount('#app')
app.echarts=echarts

3,在需要使用的页面,定义div

<div id="myChart"
     :style="{ width: '300px', height: '300px' }"></div>

4,在monted中init

mounted() {
    //this.$root => app
    let myChart = this.$root.echarts.init(
      document.getElementById("myChart")
    );
    // 绘制图表
    myChart.setOption({
      title: { text: "总用户量" },
      tooltip: {},
      xAxis: {
        data: ["12-3", "12-4", "12-5", "12-6", "12-7", "12-8"],
      },
      yAxis: {},
      series: [
        {
          name: "用户量",
          type: "line",
          data: [5, 20, 36, 10, 10, 20],
        },
      ],
    });
  },

但是可以使用这个globalProperties属性

app.config.globalProperties.$echarts = echarts;然后this.$echarts.init

但是我不推荐,因为vue3不建议使用除了《script setup》之外的写法,不建议出现this

《script setup》写法见这篇文章:

vue3.2 正式语法 script setup <script setup>_启明星的指引—博客-CSDN博客

这里最重要的是import * as echarts from ‘echarts’, 不能 import echarts from ‘echarts’,这样会报错,因为5,0版本的echarts的接口已经变成了下面这样

export { EChartsFullOption as EChartsOption, connect, disConnect, dispose, getInstanceByDom, getInstanceById, getMap, init, registerLocale, registerMap, registerTheme };

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210444.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 软件工程保研浙江大学、南京大学、同济大学、中山大学经验分享

    软件工程保研浙江大学、南京大学、同济大学、中山大学经验分享一、个人基本情况学校:某末流985专业:信息管理与信息系统排名:1平均成绩:91.23科研与比赛:一个国家级大创,互联网+国家级银奖,一篇论文(未发表),还有一堆没用什么用的水奖二、保研经验分享1.中山大学数据科学与计算机学院我参加的是中山大学的夏令营,最后的结果是考核合格(拟录取)。由于疫情原因,所以这次让我们做了一个进行自我介绍的PPT,面试时间总共为20分钟,有8—10分钟的时间进行PPT自述(中文),讲解完后老师会用英文提问,当时问我的问题是:介绍你最喜欢的城市、介绍

    2022年7月25日
    51
  • Win10自动更新永久关闭,有效的Win10强制更新关闭方法,禁止windows10自动更新,禁止update medic service ,win10显示更新并关机没有单独的关机按钮[通俗易懂]

    Win10自动更新永久关闭,有效的Win10强制更新关闭方法,禁止windows10自动更新,禁止update medic service ,win10显示更新并关机没有单独的关机按钮[通俗易懂]禁用update服务,光这个不行,下边还有windowsupdatemedicservice禁止流程鼠标右键此电脑–>管理–>服务和应用程序–>服务–>windowsupdate–>选择禁用,如果该服务已经启动,记得点击停止,然后点击右下角的应用再确定,确定,就禁止了update服务,但是这个貌似有时候就又启动了,再往下看禁用windowsup…

    2022年5月8日
    328
  • java项目介绍_java项目介绍及创建[通俗易懂]

    java项目介绍_java项目介绍及创建[通俗易懂]大家配好环境,安装好编译器(eclipse)后,应该建立第一个项目“Helloword”一、在建立项目之前,来介绍一下项目的结构。1、class(类)项目中的最小单位,一个类中存放着相应的方法和量。2、package(包):存放类的空间。为了更好地组织类,Java提供了包机制。包是类的容器,用于分隔类名空间。如果没有指定包名,所有的示例都属于一个默认的无名包。3、folder(文件夹):存放包…

    2022年7月7日
    37
  • 历年数学界菲尔兹奖及其得主简介

    历年数学界菲尔兹奖及其得主简介菲尔兹奖及其得主简介菲尔兹奖是以已故的加拿大数学家、教育家J.C.菲尔兹(FieldS)的姓氏命名的。J.C.菲尔兹1863年5月14日生于加拿大渥太华。他11岁丧父、18岁丧母,家境不算太好,J.C.菲尔兹17岁进入多伦多大学攻读数学,24岁时在美国的约翰·霍普金斯大学获博士学位,26岁任美国阿格尼大学教授。1892年到巴黎、柏林学习和工作。1902年回国后执教于多伦多大学。1907年

    2022年5月16日
    160
  • Java设计模式之结构型:代理模式

    Java设计模式之结构型:代理模式

    2021年10月4日
    36
  • m.2接口sata和pcie区别_M2固态硬盘安装方法

    m.2接口sata和pcie区别_M2固态硬盘安装方法http://mst.zol.com.cn/615/6150989.html犹记得当年Windows7系统体验指数中,那5.9分磁盘分数,在其余四项的7.9分面前,似乎已经告诉我们机械硬盘注定被时代

    2022年8月3日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号