【分享】vue+Echarts动态数据已经赋值,但是无法渲染页面的问题

41 篇文章 1 订阅
21 篇文章 0 订阅

前言:对于后端的小伙伴来说,现在用vue-element-admin 真的太香了,毕竟Java向的程序员,光后端技术栈就得学到头皮发麻啊,所以,感谢尤雨溪,感谢饿了么,感谢花裤衩。

最近在帮朋友写东西的时候,用到了饼图,可是数据明明已经加载到了,并且格式是对的,但是为啥就没法渲染呢?

出现类似的问题,我们的思路往往是如下排除:

1.代码本身是否有问题。

2.数据格式对吗。

3.代码加载顺序。

所以,这就要求我们对前端,或者直接说js弱类型(当然es6和ts是比较严格了)比较适应,同时对Vue基础比较扎实,然后就是对Vue生命周期钩子熟悉了。

遇到了这个问题,一则可以使用watch,监听数据变化。

 watch: {
    echarts_option: {
      handle(newVal,oldVal) {
        if(this.chart){
          if(newVal){
            this.chart.setOption(newVal);
          }else{
            this.chart.setOption(oldVal);
          }
        }
      }
    }
  }

这里的this.chart是放在data里边的,你的chart的实例

第二个是,直接将重新绘制的函数,写在后端请求的then里边

getData() {
       summaryAPI.getTerminalList().then(data => {
        console.log(data.data);
        let dataArray = [];
        dataArray = data.data;
        console.log(dataArray);
        for(let i = 0;i<dataArray.length;i++){
          this.legendData.push(dataArray[i].type);
          let singleData = {value: dataArray[i].count,name: dataArray[i].type}
          this.seriesData.push(singleData);
        }
        console.log('data->'+this.legendData+'-'+this.seriesData)
         this.$nextTick(() => {
          this.initChart()
        })
      }).catch();
    }

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Vue2中,可以使用echarts来绑定动态数据。首先,需要定义需要传递的数据及类型。可以使用ref来定义数据,例如const testText = ref('')。然后,在echarts的option中,可以通过data属性来传递数值。例如,在柱状图中,可以将动态数据绑定到series的data中,需要使用testText.value来获取ref定义的数据。类似地,其他类型的echarts图表也可以使用这种方式进行动态数据绑定。\[1\] 接下来,可以通过获取接口数据来设置echarts的option。可以使用axios来发送post请求获取数据。例如,在折线图中,可以使用axios.post来获取数据,并将数据赋值给相应的变量。然后,可以使用setOption方法来设置echarts的option,将动态数据绑定到相应的属性中。例如,在折线图的xAxis中,可以将动态数据绑定到data属性中。类似地,可以将动态数据绑定到其他属性中,如yAxis和series的data属性。\[2\] 同样地,在饼图中,也可以通过获取接口数据来设置echarts的option。可以使用axios.post来获取数据,并将数据赋值给相应的变量。然后,可以使用setOption方法来设置echarts的option,将动态数据绑定到相应的属性中。例如,在饼图的legend中,可以将动态数据绑定到data属性中。类似地,可以将动态数据绑定到series的data属性中。\[3\] 需要注意的是,为了保证echarts图表的响应式,可以在窗口大小改变时调用resize方法来重新渲染图表。可以通过监听resize事件来实现这一功能。\[2\]\[3\] #### 引用[.reference_title] - *1* [Vue3+echarts 动态数据传递](https://blog.csdn.net/weixin_46382462/article/details/129611899)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [vue中使用echarts实现动态数据绑定、获取后端接口数据](https://blog.csdn.net/weixin_44320032/article/details/125393860)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值