vue文件如何使用echarts.js?(两种方法介绍)

本篇文章给大家带来的内容是关于vue文件如何使用echarts.js?(两种方法介绍),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

最近工作中需要用到echarts,由于项目是用的vue-cli开发的。在网上搜到vue中合成了vue-echarts,但是不想使用vue中规定好的数据格式,于是就自己做了一个vue项目引用原生echarts的简单demo,实现过程如下:用了两种实现方式

准备工作

1、安装echarts依赖

控制台输入:npm install echarts –save

立即学习“前端免费学习笔记(深入)”;

2、全局引入

main.js中引入

import echarts from 'echarts'Vue.prototype.$echarts = echarts

登录后复制

创建图表

第一种创建方式

在一个.vue文件中引入多张图表

创建WelcomePage.vue

  

第一种在vue中使用echart的方式

登录后复制

// 引入基本模板,按需加载  let echarts = require('echarts/lib/echarts');  // 引入柱状图  require('echarts/lib/chart/bar');  // 引入柱状图  require('echarts/lib/chart/pie');  require('echarts/lib/component/tooltip');  require('echarts/lib/component/title');export default {  name: "WelcomePage",  data () {    return {  }  },  mounted(){    this.drawBar();    this.drawPie();  },  methods:{    drawBar(){      // 基于dom,初始化echarts实例      let barGraph = echarts.init(document.getElementById('barGraph'));      // 绘制图表      barGraph.setOption({        title: {          text: '全年产量趋势图',          left: 'center'        },        tooltip: {          trigger: 'item',          formatter: '{a} 
{b} : {c}' }, legend: { left: 'center', data: ['本年', '上年'], bottom:0 }, xAxis: { type: 'category', name: 'x', splitLine: {show: false}, data: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'] }, grid: { left: '1%', right: '2%', bottom: '8%', containLabel: true }, yAxis: { type: 'category', name: 'y', splitLine: {show: true}, data:['10%','20%','30%','40%','50%','60%','70%','80%','90%','100%'] }, series: [ { name: '本年', type: 'line', data: [0.8, 0.98, 0.96, 0.27, 0.81, 0.47, 0.74, 0.23, .69, 0.25, 0.36, 0.56] }, { name: '上年', type: 'line', data: [1, 0.2, 0.4, 0.8, 0.16, 0.32, 0.64, 1.28, 5.6, 0.25, 0.63, 0.65, 0.12] }, ] }) }, drawPie(){ let pieGraph = echarts.init(document.getElementById('pieGraph')); pieGraph.setOption({ title : { text: '某站点用户访问来源', subtext: '纯属虚构', x:'center' }, tooltip : { trigger: 'item', formatter: "{a}
{b} : {c} ({d}%)" }, legend: { orient: 'vertical', left: 'left', data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎'] }, series : [ { name: '访问来源', type: 'pie', radius : '55%', center: ['50%', '60%'], data:[ {value:335, name:'直接访问'}, {value:310, name:'邮件营销'}, {value:234, name:'联盟广告'}, {value:135, name:'视频广告'}, {value:1548, name:'搜索引擎'} ], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] }) } }}

登录后复制

实现效果如下图:

3372858769-5bc7e30eddaec_articlex.png

第二种实现方式(以组件的形式)

创建父组件 father.vue

  

{{ msg }}

第二种方式:通过组件的方式进行页面渲染

登录后复制

// 引入两个子组件  import BarGraph from "./bargraph";  import PieGraph from "./piegraph";  export default {    name: "father",    components:{      BarGraph,      PieGraph,    },    data(){      return{        msg: '我是爸爸,想看我的儿子,眼睛请往下移',      }    }  }

登录后复制

创建子组件barGraph.vue

   

{{ msg }}

登录后复制

  let echarts = require('echarts/lib/echarts');  // 引入柱状图  require('echarts/lib/chart/bar');  require('echarts/lib/component/tooltip');  require('echarts/lib/component/title');  // import echarts from 'echarts'    export default {      name: "bargraph",      // props:['id'],  // 第一种接收父亲传过来的值的方式      props: {        id: {          type: String,          default: 'chart'        }      },      data(){          return {            msg: "我是第一个子组件--bar",            chart: null,          }      },      mounted(){        this.drawBar();      },      methods:{        drawBar(){          this.chart = echarts.init(document.getElementById(this.id));          let colors = ['#5793f3', '#d14a61', '#675bba'];          this.chart.setOption(            {              color: colors,              tooltip: {                trigger: 'axis',                axisPointer: {                  type: 'cross'                }              },              grid: {                right: '20%'              },              toolbox: {                feature: {                  dataView: {show: true, readOnly: false},                  restore: {show: true},                  saveAsImage: {show: true}                }              },              legend: {                data:['蒸发量','降水量','平均温度']              },              xAxis: [                {                  type: 'category',                  axisTick: {                    alignWithLabel: true                  },                  data: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']                }              ],              yAxis: [                {                  type: 'value',                  name: '蒸发量',                  min: 0,                  max: 250,                  position: 'right',                  axisLine: {                    lineStyle: {                      color: colors[0]                    }                  },                  axisLabel: {                    formatter: '{value} ml'                  }                },                {                  type: 'value',                  name: '降水量',                  min: 0,                  max: 250,                  position: 'right',                  offset: 80,                  axisLine: {                    lineStyle: {                      color: colors[1]                    }                  },                  axisLabel: {                    formatter: '{value} ml'                  }                },                {                  type: 'value',                  name: '温度',                  min: 0,                  max: 25,                  position: 'left',                  axisLine: {                    lineStyle: {                      color: colors[2]                    }                  },                  axisLabel: {                    formatter: '{value} °C'                  }                }              ],              series: [                {                  name:'蒸发量',                  type:'bar',                  data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]                },                {                  name:'降水量',                  type:'bar',                  yAxisIndex: 1,                  data:[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]                },                {                  name:'平均温度',                  type:'line',                  yAxisIndex: 2,                  data:[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]                }              ]            }          )        }      }    }

登录后复制

创建pieGraph.vue

    

{{ msg }}

登录后复制

  import echarts from 'echarts'    export default {      name: "piegraph",      props:{        id: {          type: String,          default: 'pieChart'        }      },      data(){          return{            msg: '我是第二个子组件--pie',            pieChart: null          }      },      mounted(){          this.drawPie();      },      methods: {        drawPie () {          this.pieChart = echarts.init(document.getElementById(this.id));          this.pieChart.setOption(            {              title : {                text: '某站点用户访问来源',                subtext: '纯属虚构',                x:'center'              },              tooltip : {                trigger: 'item',                formatter: "{a} 
{b} : {c} ({d}%)" }, legend: { orient: 'vertical', left: 'left', data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎'] }, series : [ { name: '访问来源', type: 'pie', radius : '55%', center: ['50%', '60%'], data:[ {value:335, name:'直接访问'}, {value:310, name:'邮件营销'}, {value:234, name:'联盟广告'}, {value:135, name:'视频广告'}, {value:1548, name:'搜索引擎'} ], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] } ) } } }

登录后复制

效果实现如下:

3029923647-5bc7e566552c2_articlex.png

3113537423-5bc7e5a2b6020_articlex.png

路由文件如下:

import WelcomePage from '@/components/WelcomePage'import Father from '@/components/father'import BarGraph from '@/components/bargraph'import PieGraph from '@/components/piegraph'export default new Router({  routes: [    {      path: '/',      name: 'WelcomePage',      component: WelcomePage    },    {      path: '/father',      name: 'father',      component: Father,      children:[        {          path: '/bargraph',          name: 'bargraph',          component: BarGraph        },        {          path: '/piegraph',          name: 'piegraph',          component: PieGraph        }      ]    },  ]})

登录后复制

以上就是vue文件如何使用echarts.js?(两种方法介绍)的详细内容,更多请关注【创想鸟】其它相关文章!

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2738805.html

(0)
上一篇 2025年3月8日 01:54:54
下一篇 2025年2月18日 00:57:30

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 带你详细解读JS原型链

    本篇文章给大家带来的内容是关于带你详细解读js原型链,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 之前对js原型和原型链的理解一直觉得很绕,绕来绕去的,在看了《JavaScript高级程序设计》和各种文章之后,终于对原型…

    2025年3月8日 编程技术
    200
  • JavaScript的数据类型有哪些?js数据类型的介绍

    本篇文章给大家带来的内容是关于javascript的数据类型有哪些?js数据类型的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 一、JavaScript有几种类型的值? Javascript有两种数据类型,分别是基本…

    2025年3月8日
    200
  • javascript函数节流和防抖的应用场景介绍

    本篇文章给大家带来的内容是关于php变量作用域的用法介绍(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 throttle 节流 事件触发到结束后只执行一次。 应用场景 触发mousemove事件的时候, 如鼠标移动…

    编程技术 2025年3月8日
    200
  • ES6中Generator的自动执行详解

    本篇文章给大家带来的内容是关于es6中generator的自动执行详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 单个异步任务 var fetch = require(‘node-fetch’);function* g…

    编程技术 2025年3月8日
    200
  • javascript错误处理机制的介绍(附示例)

    本篇文章给大家带来的内容是关于javascript错误处理机制的介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 有时候,在自己封装的工具函数中,不传参或传入了错误类型的参数,也要适当的抛出一些错误以示警告;使…

    编程技术 2025年3月8日
    200
  • javascript中作用域链的详细介绍(附示例)

    本篇文章给大家带来的内容是关于javascript中作用域链的详细介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 概述 JavaScript 中的可执行代码有其执行上下文,在执行上下文中,有三个重要的元素: …

    编程技术 2025年3月8日
    200
  • echarts如何优化数据视图dataView中的样式(代码示例)

    本篇文章给大家带来的内容是关于echarts如何优化数据视图dataview中的样式(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 在使用echart过程中,toolbox里有个dataView视图模式,里面的…

    2025年3月8日
    200
  • 浅析js中的深拷贝与浅拷贝

    本篇文章给大家带来的内容是关于浅析js中的深拷贝与浅拷贝,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 关于深拷贝和浅拷贝其实是两个比较基础的概念,但是我还是想整理一下,因为里面有很多小细节还是很有意思的。 深拷贝和浅拷贝…

    编程技术 2025年3月8日
    200
  • React首次渲染的解析一(纯DOM元素)

    本篇文章给大家带来的内容是关于react首次渲染的解析(纯dom元素),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 React 是一个十分庞大的库,由于要同时考虑 ReactDom 和 ReactNative ,还有服务…

    2025年3月8日
    200
  • React首次渲染解析二(纯DOM元素)

    本篇文章给大家带来的内容是关于react首次渲染解析二(纯dom元素),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 上一篇文章中,介绍了顶层对象ReactCompositeComponent[T]是如何构造的,接下来我们…

    2025年3月8日
    200

发表回复

登录后才能评论