Vue?Echarts報(bào)錯(cuò)Initialize?failed:?invalid?dom解決方法

報(bào)錯(cuò)原因
dom還沒掛載完成,echarts.init() 就已經(jīng)開始執(zhí)行
解決方法
1、不要用created(用mounted),created這時(shí)候還只是創(chuàng)建了實(shí)例,但模板還沒掛載完成
- created:在模板渲染成html前調(diào)用,即通常初始化某些屬性值,然后再渲染成視圖
- mounted:在模板渲染成html后調(diào)用,通常是初始化頁面完成后,再對(duì)html的dom節(jié)點(diǎn)進(jìn)行一些需要的操作
也就是說created()方法是在頁面加載前調(diào)用,此時(shí)dom還未加載。所以當(dāng) 有改變dom的時(shí)候用mounted, 沒有改變dom操作就用created
2、使用create情況下使用延遲加載
(1)setTimeout延遲加載
setTimeout()方法用于在指定毫秒數(shù)后調(diào)用
通過延遲加載getChart()方法,使DOM先于getChart方法加載,為DOM加載提供時(shí)間

(2)使用nextTick延遲加載
created() {
this.$nextTick(()=>{
this.getchart();
})
},3、用mounted還是會(huì)報(bào)錯(cuò)
最近發(fā)現(xiàn)有些友友用了mounted還是會(huì)報(bào)錯(cuò),有查了查解決辦法,發(fā)現(xiàn)有博主說可以將document.getElementId獲取dom換為使用ref指向dom元素
<template>
<!--1.設(shè)置DOM容器-->
<div id="Charts" ref="Echarts" ></div>
</template>
<script>
//2.引入echartjs
import * as echarts from "echarts";
export default {
name: "chart",
created() {
setTimeout(() => {
this.getChart()
}, 1000);
},
methods:{
getChart(){
// 3.定義圖標(biāo)對(duì)象myChart,初始化echarts實(shí)例
let myChart=echarts.init(this.$refs.Echarts)
// 4.添加配置項(xiàng)
let options={
title: { //標(biāo)題
text: 'ECharts 入門示例', //主標(biāo)題文本
left:150,
top:10,
},
tooltip: {},
xAxis: { //配置要在 X 軸顯示的項(xiàng):
data: ['襯衫', '羊毛衫', '雪紡衫', '褲子', '高跟鞋', '襪子']
},
yAxis: {}, //配置要在 Y 軸顯示的項(xiàng):
series: [
{
name: '銷量',
type: 'bar',
data: [
{"value":"5","date":"2022-4-8"},
{"value":"8","date":"2023-4-8"},
],
}
]
}
// 5.將配置給myChart
myChart.setOption(options)
}
}
}
</script>
<style scoped>
#Charts{
width: 500px;
height: 500px;
border: 1px solid red;
}
</style>總結(jié)
到此這篇關(guān)于Vue Echarts報(bào)錯(cuò)Initialize failed: invalid dom解決的文章就介紹到這了,更多相關(guān)Echarts報(bào)錯(cuò)Initialize failed: invalid dom內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決vue cli4升級(jí)sass-loader(v8)后報(bào)錯(cuò)問題
這篇文章主要介紹了解決vue cli4升級(jí)sass-loader(v8)后報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
前端使用vue實(shí)現(xiàn)token無感刷新的三種方案解析
這篇文章主要為大家介紹了前端使用vue實(shí)現(xiàn)token無感刷新的三種方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
如何解決Element UI el-dialog打開一次后無法再次打開問題
這篇文章主要介紹了如何解決Element UI el-dialog打開一次后無法再次打開問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
Vue插槽slot詳細(xì)介紹(對(duì)比版本變化,避免踩坑)
Vue中的Slot對(duì)于編寫可復(fù)用可擴(kuò)展的組件是再合適不過了,下面這篇文章主要給大家介紹了關(guān)于Vue插槽slot詳細(xì)介紹的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
vue中this.$refs.name.offsetHeight獲取不到值問題
這篇文章主要介紹了vue中this.$refs.name.offsetHeight獲取不到值問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
詳解vue-router 2.0 常用基礎(chǔ)知識(shí)點(diǎn)之router-link
這篇文章主要介紹了詳解vue-router 2.0 常用基礎(chǔ)知識(shí)點(diǎn)之router-link,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05

