(已解决)echarts在vue中路由跳转后图表无法出现,附源码
2021/12/13 12:47:26
本文主要是介绍(已解决)echarts在vue中路由跳转后图表无法出现,附源码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 一、无法出现图表的原因
- 二、解决办法
- 第一种
- 第二种
- 总结
一、无法出现图表的原因
1. 如果未实例化则进行实例化过程, 在此期间会在div容器生成一个_echarts_instance_属性, 该属性值其实就是当前echarts的ID, 然后进行后边的渲染操作.
2. 当页面跳转或者切换时,echarts会根据该属性进行判断是否重新进行渲染图表, echarts会先匹配改div容器上的_echarts_instance_属性值是否与实例对象的ID一样,如果一样,那么echarts将无法进行重新渲染。反之亦然。
3. 根据此特性进行入手,将该属性值设置为空。在echarts匹配的过程中重新渲染图表。
二、解决办法
第一种
在图表渲染完成之后,将该div的_echarts_instance_属性设置为空,让其无法匹配从而进行重新渲染。
document.getElementById('main').setAttribute('_echarts_instance_', '');
代码如下:
<template> <div class="home"> <div id="main"></div> </div> </template> <script> import * as echarts from 'echarts'; export default { name: 'Home', components: { }, mounted () { // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('main')); // 绘制图表 myChart.setOption({ title: { text: 'ECharts 入门示例' }, tooltip: {}, xAxis: { data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'] }, yAxis: {}, series: [ { name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] } ] }); document.getElementById('main').setAttribute('_echarts_instance_', ''); }, } </script> <style lang="scss" scoped> #main { width: 600px; height: 600px; } </style>
第二种
使用动态ID,实质上的原理跟第一种的办法一样。
<div class="echarts" :id="main"></div>
this.main = "main" + parseInt(Math.random() * 100)
代码如下:
<template> <div class="home"> <div :id="main" class="main" ></div> </div> </template> <script> import * as echarts from 'echarts'; export default { name: 'Home', components: { }, data () { return { main: "" } }, mounted () { this.main = "main" + parseInt(Math.random() * 100) this.$nextTick(() => { // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById(this.main)); // 绘制图表 myChart.setOption({ title: { text: 'ECharts 入门示例' }, tooltip: {}, xAxis: { data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'] }, yAxis: {}, series: [ { name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] } ] }); }) }, } </script> <style lang="scss" scoped> .main { width: 600px; height: 600px; } </style>
总结
个人的理解,如有出入欢迎评论留言喔!!!
这篇关于(已解决)echarts在vue中路由跳转后图表无法出现,附源码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27Vue2面试真题详解与实战教程
- 2024-12-27Vue3面试真题详解与实战攻略
- 2024-12-27JS大厂面试真题解析与实战指南
- 2024-12-27JS 大厂面试真题详解与实战指南
- 2024-12-27React 大厂面试真题详解及应对策略
- 2024-12-27Vue2 大厂面试真题详解及实战演练
- 2024-12-27Vue3 大厂面试真题详解及实战指南
- 2024-12-27Vue3大厂面试真题详解与实战攻略
- 2024-12-26React入门教程:从零开始搭建你的第一个React应用
- 2024-12-25Vue2入门教程:轻松掌握前端开发基础