用echarts时,多次加载就会报存在警告,意思是DOM上已经初始化了一个图表实例。处理方法删除DOM:

    1. echarts.dispose(document.getElementById(id))

    用echarts时,如果不存在DOM,就会报错,处理方法先检查是否DOM存在:

    1. if (document.getElementById(id) == null) {
    2. return
    3. }

    最终代码

    1. //1,下载echarts
    2. npm i echarts -S
    3. //2,在main.js中引入echarts
    4. import * as echarts from "echarts";
    5. //3,html
    6. <div v-for="(item, index) in list" :key="index">
    7. <div class="myChart"></div>
    8. </div>
    9. //4,css
    10. .myChart {
    11. width: 100%;
    12. height: 550px;
    13. }
    14. //5,js
    15. mounted() {
    16. //调用接口函数
    17. this.getData();
    18. }
    19. methods:{
    20. getData: function () {
    21. this.$http.get('xxx').then(res => {
    22. //处理数据
    23. this.data = res.data
    24. //再调用图表函数
    25. this.$nextTick(() => {
    26. this.drawChart();
    27. });
    28. }).catch(err => {
    29. console.log(err)
    30. })
    31. },
    32. drawChart:function(){
    33. let item = document.getElementsByClassName("myChart")
    34. for (let i = 0; i < item.length; i++) {
    35. if (item[i] == null) {
    36. return
    37. }
    38. echarts.dispose(item[i])
    39. let myChart = echarts.init(item[i]);
    40. myChart.setOption({})
    41. window.addEventListener("resize", () => { //根据屏幕进行实时绘制
    42. myChart.resize();
    43. });
    44. }
    45. }
    46. }