Vue2 使用 Echarts 创建图表实例代码

发布时间 - 2026-01-11 01:10:11    点击率:

在后台管理系统中,图表是一个很普遍的元素。目前常用的图标插件有 charts,  Echarts, highcharts。这次将介绍 Echarts 在 Vue 项目中的应用。

一、安装插件

使用 cnpm 安装 Echarts

cnpm install echarts -S

和之前介绍的 axios 类似,echarts 也不能通过 Vue.use() 进行全局调用

通常是在需要使用图表的 .vue 文件中直接引入

import echarts from 'echarts'

也可以在 main.js 中引入,然后修改原型链

Vue.prototype.$echarts = echarts 

然后就可以全局使用了

let myChart = this.$echarts.init(document.getElementById('myChart'))

二、创建图表

首先需要在 HTML 中创建图表的容器

需要注意的是,图表的容器必须指定宽高,也就是说 width,height 不能使用百分比,只能用 px

这样确实不够灵活,不过我们可以用 js 来改变 width 和 height,使图表容器能够自适应,具体的实现请往后看

然后在 mounted 中创建图表,具体的配置参考官方文档,这里不再赘述

 三、按需引入

上面引入的 echarts 包含了所有图表,但有时候我们只需要一两个基本图表,这时候完整的 echarts 就显得累赘

假如只需要创建一个饼图,那么可以这么做:

 // 引入基本模板
 let echarts = require('echarts/lib/echarts')
 // 引入饼图组件
 require('echarts/lib/chart/pie')
 // 引入提示框和图例组件
 require('echarts/lib/component/tooltip')
 require('echarts/lib/component/legend')

之所以使用 require 而不是 import,是因为 require 可以直接从 node_modules 中查找,而 import 必须把路径写全

可以按需引入的模块列表见 https://github.com/ecomfe/echarts/blob/master/index.js

 四、适应容器

上面说过,图表的容器必须固定宽高,这确实是一个比较奇特的设定

为了解决这个问题,需要给图表容器外面再加一个容器,而这个外容器的宽高可以适应页面。上面的 <div class="charts"> 就是这样的外容器

let chartBox = document.getElementsByClassName('charts')[0]
let myChart = document.getElementById('myChart')

// 用于使chart自适应高度和宽度,通过窗体高宽计算容器高宽
function resizeCharts () {
 myChart.style.width = chartBox.style.width + 'px'
 myChart.style.height = chartBox.style.height + 'px'
}
// 设置容器高宽
resizeCharts()
   
let mainChart = echarts.init(myChart)
mainChart.setOption(options)

当页面加载的时候,将外容器的宽高,赋给图表容器

但这只是解决了页面加载时的自适应问题

如果在页面加载之后,仍需要图表自适应宽高,就需要用到 echarts 的媒体查询

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# vue使用echarts  # vue2.0使用echarts  # vue中使用echarts  # VUE2.0+Element-UI+Echarts封装的组件实例  # vue2.0中自适应echarts图表、全屏插件screenfull的使用  # 详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)  # Vue2+Echarts封装组件之专注逻辑  # 图表生成自动化方式  # 自适应  # 是一个  # 加载  # 只需要  # 按需  # 的是  # 是在  # 是因为  # 可以用  # 说过  # 可以直接  # 但这  # 这么做  # 再加  # 只能用  # 创建一个  # 需要注意  # 解决这个问题  # 大家多多  # 后台管理 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: phpredis提高消息队列的实时性方法(推荐)  西安专业网站制作公司有哪些,陕西省建行官方网站?  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  高防服务器租用首荐平台,企业级优惠套餐快速部署  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  如何快速登录WAP自助建站平台?  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  Laravel如何使用Blade组件和插槽?(Component代码示例)  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  Laravel怎么清理缓存_Laravel optimize clear命令详解  linux写shell需要注意的问题(必看)  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  如何在Ubuntu系统下快速搭建WordPress个人网站?  如何利用DOS批处理实现定时关机操作详解  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  详解Oracle修改字段类型方法总结  nodejs redis 发布订阅机制封装实现方法及实例代码  高性能网站服务器配置指南:安全稳定与高效建站核心方案  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  如何用PHP快速搭建高效网站?分步指南  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  如何快速完成中国万网建站详细流程?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  JavaScript常见的五种数组去重的方式  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  网站建设要注意的标准 促进网站用户好感度!  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  Laravel如何使用Collections进行数据处理?(实用方法示例)  Laravel中的withCount方法怎么高效统计关联模型数量  智能起名网站制作软件有哪些,制作logo的软件?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  海南网站制作公司有哪些,海口网是哪家的?  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  高端建站三要素:定制模板、企业官网与响应式设计优化  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  独立制作一个网站多少钱,建立网站需要花多少钱?  浅谈redis在项目中的应用  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  如何在宝塔面板中修改默认建站目录?  iOS发送验证码倒计时应用  移动端脚本框架Hammer.js  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  桂林网站制作公司有哪些,桂林马拉松怎么报名?  JS去除重复并统计数量的实现方法  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程