让前端飞Web前端之路

Vue动态生成多个Echarts图表

2019-12-25  本文已影响0人  Jiwenjie

html

<div class="chart-dis-area">
    <div v-for="(item,index) in chartList" class="chart-item-area">
        <div class="echarts" :id="item.id"></div>
    </div>
</div>

JS

默认 chartList 是一个空数组

init() {
    let arr = [];
    for(let i = 0; i < 6; i++) {
        let item = {
            barChart: '',       // chart 对象实例
            id: 'id' + i,       // 为了标示 id 不同
        }
        arr.push(item);
    }
    this.chartList = arr;
    
    this.$nextTick(() => {
        for(let i = 0; i < this.chartList.length; i++) {
            this.chartList[i].barChart = echarts.init(document.getElementById(this.chartList[i].id));
        }
        this.getListData();     // 请求网络获取数据
    })
}

tips:这里有几个注意点。1 不能用 $refs 因为它不是响应式赋值,如果使用 ref 会出现 getAttribute undefined 错误。2 如果想要打印日志查看输出,在 nextTick 中不能使用 JSON.stringify 方法包裹数组,会出现循环引用错误

上一篇 下一篇

猜你喜欢

热点阅读