亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue3封裝echarts圖表數(shù)據(jù)無法渲染到頁面問題

 更新時間:2024年09月07日 14:48:47   作者:Asus.Blogs  
這篇文章主要介紹了vue3封裝echarts圖表數(shù)據(jù)無法渲染到頁面問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vue3封裝echarts圖表數(shù)據(jù)無法渲染到頁面

問題是后端的數(shù)據(jù)已經(jīng)成功返回到前端了,但是Echarts圖表一直不能被渲染,卡了一個多小時,最后問gpt才解決(gptyyds!?。。?/p>

 methods: {
    loadGet() {
      this.$axios.get(this.$httpUrl + '/goods/count').then(res => res.data).then(res => {
        console.log(res)
        // this.cntdata = res.data
        if (res.code == 200) {
          // this.yData = res.data
          // this.cntData.length=0;
          for (let i = 0; i < res.data.length; i++) {
            this.cntData.push(res.data[i]);
          }
          console.log("data = =" + this.cntData + res.data.length)
          this.$message({
            message: '操作成功!',
            type: 'success'
          });
        } else {
          this.$message({
            message: '操作失?。?,
            type: 'error'
          });
        }

      })
    },
    init() { //調(diào)用session中的用戶數(shù)據(jù)
      this.user = JSON.parse(sessionStorage.getItem('CurUser'))
    },
    initEcharts() {
      let option = {
        title: {
          text: "現(xiàn)存物資量"
        },
        tooltip: {},
        legend: {
          data: [""]
        },
        xAxis: {
          data: ["鼠標", "帳篷", "鍵盤", "口罩", "礦泉水", "棉被"]
        },
        yAxis: {},
        series: [
          {
            name: "發(fā)放量",
            type: "bar", //類型為柱狀圖
            // data: [5, 20, 36, 10, 10, 20]
            data: this.cntData  //問題出在這 data一直不能被后端返回的this.cntData渲染!
          }
        ]
      };
      const myChart = echarts.init(this.$refs.mychart);// 圖標初始化

      myChart.setOption(option);// 渲染頁面
      //隨著屏幕大小調(diào)節(jié)圖表
      window.addEventListener("resize", () => {
        myChart.resize();
      });
    },
  },
  created() {
    this.init()
  }
}
</script>

原文

  • 我:這份代碼中ECharts圖標中的 series 中的data無法被后端傳來的數(shù)據(jù)渲染怎么辦
  • gpt:在你提供的代碼中,ECharts 圖表的數(shù)據(jù)被初始化為 this.cntData,但 this.cntData 在組件創(chuàng)建時是一個空數(shù)組。要使圖表能夠根據(jù)后端傳來的數(shù)據(jù)進行渲染,你需要確保在數(shù)據(jù)加載完成后再初始化圖表。
  • 為了實現(xiàn)這一點,你可以在 loadGet 方法成功獲取數(shù)據(jù)后調(diào)用 initEcharts 方法來初始化圖表。這確保了數(shù)據(jù)已經(jīng)準備好并且可以在圖表中使用。

下面是修改后的代碼片段:

methods: {
  loadGet() {
    this.$axios.get(this.$httpUrl + '/goods/count').then(res => res.data).then(res => {
      console.log(res);
      if (res.code === 200) {
        this.cntData = res.data; // 將數(shù)據(jù)賦值給 cntData
        this.initEcharts(); // 初始化圖表 !!!!!!這里!
        this.$message({
          message: '操作成功!',
          type: 'success'
        });
      } else {
        this.$message({
          message: '操作失?。?,
          type: 'error'
        });
      }
    });
  },
  initEcharts() {
    let option = {
      // ... 其余圖表配置 ...
      series: [
        {
          name: "發(fā)放量",
          type: "bar", //類型為柱狀圖
          data: this.cntData // 使用從后端獲取的數(shù)據(jù)
        }
      ]
    };
    const myChart = echarts.init(this.$refs.mychart);
    myChart.setOption(option);
    window.addEventListener("resize", () => {
      myChart.resize();
    });
  },
  // ... 其他方法 ...
},

我:其中的mounted方法是先于beforeMount運行的嗎

gpt:不對,beforeMount 方法在 mounted 方法之前執(zhí)行。

Vue.js 生命周期中的順序是如下的:

  • beforeCreate:在實例初始化之后,數(shù)據(jù)觀測 (data observation) 和事件配置 (event/watcher setup) 之前被調(diào)用。這時實例還沒有初始化完成,數(shù)據(jù)和事件方法尚不可用。
  • created:在實例創(chuàng)建完成后被立即調(diào)用。在這一步,實例已完成以下的配置:數(shù)據(jù)觀測(data observation),屬性和方法的運算,watch/event事件回調(diào)。然而,掛載階段還沒開始,DOM 元素也還沒有被創(chuàng)建。
  • beforeMount:在掛載開始之前被調(diào)用:相關的 render 函數(shù)首次被調(diào)用。
  • mounted:el 被新創(chuàng)建的 vm.$el 替換,并掛載到實例上去之后調(diào)用該鉤子。

所以,beforeMount 在 mounted 之前執(zhí)行,它們分別位于 Vue 實例生命周期的不同階段。

–沒看懂。。。。

我:那為什么this.cntData不能去填充圖標的data

gpt:問題可能是由于異步操作的原因。在你的代碼中,loadGet 方法通過異步請求從后端獲取數(shù)據(jù),并在獲取數(shù)據(jù)后調(diào)用initEcharts 方法。然而,由于異步請求的性質,initEcharts 方法可能在數(shù)據(jù)還沒有獲取到時就被調(diào)用了,導致 this.cntData 仍然是空數(shù)組。

要解決這個問題,你可以確保在數(shù)據(jù)成功獲取后再調(diào)用 initEcharts 方法。你已經(jīng)在 loadGet

方法中進行了這個調(diào)用,但是需要注意確保數(shù)據(jù)獲取成功后才執(zhí)行這個調(diào)用。

看懂了好像…

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 使用vue-cli創(chuàng)建vue2項目的實戰(zhàn)步驟詳解

    使用vue-cli創(chuàng)建vue2項目的實戰(zhàn)步驟詳解

    相信大部分Vue開發(fā)者都使用過vue-cli來構建項目,它的確很方便,但對于很多初級開發(fā)者來說,還是要踩不少坑的,下面這篇文章主要給大家介紹了關于使用vue-cli創(chuàng)建vue2項目的實戰(zhàn)步驟,需要的朋友可以參考下
    2023-01-01
  • 詳解key在Vue列表渲染時究竟起到了什么作用

    詳解key在Vue列表渲染時究竟起到了什么作用

    這篇文章主要介紹了key在Vue列表渲染時究竟起到了什么作用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Vue 3.0中jsx語法的使用

    Vue 3.0中jsx語法的使用

    這篇文章主要介紹了Vue 3.0 中 jsx 語法使用,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-11-11
  • Vue3中事件總線的具體使用

    Vue3中事件總線的具體使用

    本文主要介紹了Vue3中事件總線的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • vue中獲取滾動table的可視頁面寬度調(diào)整表頭與列對齊(每列寬度不都相同)

    vue中獲取滾動table的可視頁面寬度調(diào)整表頭與列對齊(每列寬度不都相同)

    這篇文章主要介紹了vue中獲取滾動table的可視頁面寬度,調(diào)整表頭與列對齊(每列寬度不都相同),需要的朋友可以參考下
    2019-08-08
  • 基于Vue2.0+ElementUI實現(xiàn)表格翻頁功能

    基于Vue2.0+ElementUI實現(xiàn)表格翻頁功能

    Element UI 是一套采用 Vue 2.0 作為基礎框架實現(xiàn)的組件庫,它面向企業(yè)級的后臺應用,能夠幫助你快速地搭建網(wǎng)站,極大地減少研發(fā)的人力與時間成本。這篇文章主要介紹了Vue2.0+ElementUI實現(xiàn)表格翻頁功能,需要的朋友可以參考下
    2017-10-10
  • vue3父組件使用ref獲取子組件的屬性和方法

    vue3父組件使用ref獲取子組件的屬性和方法

    在vue3中父組件訪問子組件中的屬性和方法是需要借助于ref,蘇哦一本文小編給大家介紹了vue3父組件如何使用ref獲取獲取子組件的屬性和方法,文中詳細的代碼講解,需要的朋友可以參考下
    2023-11-11
  • vue中格式化時間過濾器代碼實例

    vue中格式化時間過濾器代碼實例

    這篇文章主要介紹了vue格式化時間過濾器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • 解決vue頁面刷新產(chǎn)生白屏的問題

    解決vue頁面刷新產(chǎn)生白屏的問題

    這篇文章主要介紹了解決vue頁面刷新產(chǎn)生白屏的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue.js 解決v-model讓select默認選中不生效的問題

    vue.js 解決v-model讓select默認選中不生效的問題

    這篇文章主要介紹了vue.js 解決v-model讓select默認選中不生效的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07

最新評論