3.Echart----如何赋值数据

STRAT

正文

话不多数,见代码~

<template>
  <div class="tomato3">
    <h1>演示一下数据初始化</h1>
    <div id="main" class="main"></div>
  </div>
</template>

<script>
import * as echarts from "echarts";
export default {
  name: "lazy_tomato",
  data() {
    return {};
  },
  created() {
    // 1.1 created钩子函数中去初始化数据,需要使用`this.$nextTick(()=>{})`等待dom加载完毕
    this.initData();
  },
  mounted() {
    // 1.2 mounted钩子中去请求我们的数据。mounted钩子函数中dom已经渲染完毕,所以不需要`this.$nextTick`
    // setTimeout(() => {
    //   let data = [100, 200, 300, 140, 500, 180];
    //   this.initMap(data);
    // }, 100);
  },
  methods: {
    initData() {
      // 2. 请求数据一般我们是异步的, 比如`axios`和`setTimeout定时器` 就是异步的,异步的 不会阻塞后续代码逻辑执行.
      setTimeout(() => {
        console.log("setTimeout");
        this.$nextTick(() => {
          let data = [100, 200, 300, 140, 500, 180];
          this.initMap(data);
        });
      }, 100);

      console.log("后续代码");


      /**
      * 3.
      * + 上述为了演示异步效果,我就使用了定时器。
      * + 正常的渲染逻辑是 `数据请求完毕之后,再去初始化地图的数据;` 上述代码执行结果可以看到:先打印"后续代码"再打印"setTimeout";
      * + 没有数据,那肯定不会渲染地图
      * + *JS中代码的执行机制很有意思,有兴趣可以看看博客了解一下,例如:https://juejin.cn/post/6844903512845860872#heading-10 *
      */
    },

    initMap(data) {
      let chartDom = document.getElementById("main");
      let myChart = echarts.init(chartDom);
      let option;

      option = {
        xAxis: {
          type: "category",
          data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
        },
        yAxis: {
          type: "value",
        },
        series: [
          {
            data: data,
            type: "line",
          },
        ],
      };

      myChart.setOption(option);
    },
  },
};
</script>

<style lang="scss" scoped>
.tomato3 {
  .main {
    width: 400px;
    height: 300px;
    margin: 200px auto;
  }
}
</style>

运行截图
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lazy_tomato

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值