vue中Echarts使用动态数据的两种方式

在使用Echarts时我们数据一般不是静态写死的,而是通过后端接口动态获取的,在此总结两种在vue框架下Echarts使用动态数据的方式。

1.通过computed


   
   
   
   
  1. computed: {
  2. options() {
  3. let that = this;
  4. let option = {
  5. tooltip : {
  6. trigger: 'axis',
  7. formatter: function(item) {
  8. return `支付金额 ${item[0].value}元`
  9. }
  10. },
  11. legend: {
  12. formatter: function(item){
  13. return `${item}: ${that.priceData.todayPrice}`
  14. }
  15. },
  16. grid: {
  17. left: '3%',
  18. right: '4%',
  19. bottom: '3%',
  20. containLabel: true
  21. },
  22. xAxis: {
  23. type: 'category',
  24. boundaryGap: false,
  25. data: [ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24]
  26. },
  27. yAxis: {
  28. type: 'value',
  29. splitLine: { //网格线
  30. show: false
  31. }
  32. },
  33. series: [{
  34. data: that.priceData.timePriceRange,
  35. type: 'line',
  36. smooth: true,
  37. name: '支付金额',
  38. itemStyle : {
  39. normal : {
  40. color: '#13CE66',
  41. lineStyle:{
  42. color: '#13CE66'
  43. }
  44. }
  45. }
  46. }]
  47. }
  48. return option;
  49. }
  50. },
  51. //初始化
  52. initEcharts(){
  53. let myChart = Echarts.init( this.$refs.chart);
  54. myChart.setOption( this.options);
  55. }

2.在data中定义option,通过在初始化之前,直接改变option对应属性值


   
   
   
   
  1. //在data中定义option
  2. initEcharts(){
  3. this.option.yAxis[ 1].max = this.maxRate;
  4. this.option.xAxis.data = this.dateList;
  5. this.option.series[ 0].data = this.payPriceTrendList;
  6. let myChart = Echarts.init( this.$refs.chart);
  7. myChart.setOption( this.option);
  8. }

数据变化后需要再次调init方法刷线图表

你可能感兴趣的:(vue)