<template>
<div ref="wordcloudchart"style="width:400px;height:400px"></div>
</template>
<script>
export default{
data(){
<!--
...
-->
},
mounted(){
this.initWordCloudChart();
},
methods:{
initWordCloudChart(){
let wordcloud=this.$echarts.init(this.$refs.wordcloudchart);
//console.log(wordcloud);
<!--
...
}
}
}
</script>
当前代码即完成在页面上实现词云图的功能,一切正常。但往<template>
中增加了上百行代码后,wordcloud
为undefined
,即获取不到DOM
。尝试网上的什么异步方法,jq......均不行。更改mounted
为updated
生效。
由于DOM
中的某个DOM
采用了v-if
、v-show
或者 v-for
(即根据获取到的后台数据来动态操作 DOM,即响应式),则DOM
无法在mounted
阶段获取到。mounted
为加载阶段,而updated
阶段则是完成了数据更新到DOM
的阶段,使用this.$refs.wordcloudchart
就能找到DOM
。
参考链接: