vue项目当中echarts不显示

1.echarts不显示
2. JSON.parse();

折腾了好几个小时;虽然现在看来是十分简单的,但对于自己,还是进步的还需要的很多很多;
1.在vue里面的echarts图表始终不出来,先熟悉哈页面解构

vue的代码:
  <!--为echarts准备一个具备大小的容器dom-->
          <div id="attendanceData" style="width: 500px;height: 289px; box-sizing:border-box; line-height: 289px;">     
          </div>   

在页面渲染出来的html解构

<div id="attendanceData"  style="width: 551px;height: 289px;box-sizing: border-box;line-height: 289px;-webkit-tap-highlight-color: transparent;user-select: none;background: transparent;">
<div style="position: relative; overflow: hidden; width: 500px; height: 289px; padding: 0px; margin: 0px; border-width: 0px; cursor: default;">
<canvas width="500" height="289" data-zr-dom-id="zr_0" style="position: absolute; left: 0px; top: 0px; width: 500px; height: 289px; user-select: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); padding: 0px; margin: 0px; border-width: 0px;">
</canvas>
</div>
</div>
在原来的基础上面 添加了一个div;然后div里面包裹着一个canvas;

要是页面解构是这样的
<div id="attendanceData"  style="width: 500px; height: 289px; box-sizing: border-box; line-height: 289px; -webkit-tap-highlight-color: transparent; user-select: none;">
<div style="position: relative; overflow: hidden; width: 500px; height: 289px; padding: 0px; margin: 0px; border-width: 0px; cursor: default;">
</div>
</div>
就证明是echarts没有形成;

**报错  vue.esm.js?efeb:578 [Vue warn]: Error in nextTick: "ReferenceError: myChart is not defined"**    

只需要  let  myChart 就可以了;

2.页面要是一直都没有canvas出现;就考虑dom到底有没有实现;就是到底执行到这串代码没有;结果alert(document.getElementById(“attendanceData”));始终为null; 找不到这个节点;就考虑生命周期;之前一直是在mouted里面去调后台的数据;结果发现在这个阶段时候;该节点还没有形成;所以你去alert();就一直显示null;
解决方案:在updated去调用数据;就出现; 现在虽然解决了,但还是不是最优的;后期在优化吧

updated() {
     // 获取考勤数据
     this.getAttendanceData();
  },
  getAttendanceData() {
       this.$nextTick(()=>{        
     let  myChart = echarts.init(document.getElementById("attendanceData"));
        // 给树状图赋值
        myChart.setOption({
            xAxis: {
           type: 'category',
           data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
        },
     yAxis: {
         type: 'value'
       },
    series: [{
        data: [820, 932, 901, 934, 1290, 1330, 1320],
        type: 'line'
       }]
        }) 
      });
    },

3 我们一般把关于自己的信息,都是storage到本地储存里面;在取出来的时候,我发现该对象.name 显示undefined;
晓得JSON.parse(str);但是没有多大的在意;后来才发现后台传的是一个字符串,而不是json对象

1.parse 用于从一个字符串中解析出json 对象。例如

var str='{"name":"cpf","age":"23"}'JSON.parse(str) 得到:

Object: age:"23"

            name:"cpf"

            _proto_:Object

ps:单引号写在{}外,每个属性都必须双引号,否则会抛出异常

2.stringify用于从一个对象解析出字符串,例如

var a={a:1,b:2}

经 JSON.stringify(a)得到:

“{“a”:1,"b":2}”

这是后台的数据
这是后台传输的数据
json数据
这是转化后为json对象,这才是我想要的数据;

  • 10
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
Vue Echarts是一个基于Vue.js的图表库,它可以帮助我们在Vue项目中轻松地展示各种图表,包括图片。 要在Vue Echarts显示图片,可以使用Echarts的自定义系列(custom series)功能。具体步骤如下: 1. 首先,确保你已经安装了Vue Echarts库。可以通过npm或yarn进行安装。 2. 在Vue组件中引入Echarts,并创建一个Echarts实例。可以使用以下代码: ```javascript import echarts from 'echarts'; export default { mounted() { this.initChart(); }, methods: { initChart() { const chartDom = this.$refs.chart; const myChart = echarts.init(chartDom); // 在这里配置Echarts的其他选项 // 创建一个自定义系列 myChart.setOption({ series: [{ type: 'custom', renderItem: function(params, api) { // 在这里绘制图片 const image = new Image(); image.src = 'your_image_url'; // 设置图片的位置和大小 image.style.x = api.coord([xValue, yValue]); image.style.y = api.coord([xValue, yValue]); image.style.width = '50px'; image.style.height = '50px'; // 将图片添加到Echarts容器中 chartDom.appendChild(image); }, // 其他系列配置项 }] }); } } } ``` 3. 在上述代码中,你需要将`your_image_url`替换为你要显示的图片的URL。你还可以根据需要调整图片的位置和大小。 4. 最后,在Vue模板中添加一个容器元素,用于渲染Echarts图表。可以使用以下代码: ```html <template> <div ref="chart" style="width: 400px; height: 300px;"></div> </template> ``` 这样,你就可以在Vue项目中使用Vue Echarts显示图片了。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值