需求: 需要在一個列表里 動態渲染多個echart圖表;
前提: 本人使用的是vue框架
分析:
1、vue框架獲取dom結構 可以用官方指定的ref, 或者創建一個id document.getElementById() 方式獲取(我這里用的是第二種方式 根據id來獲取)
2、id也需要動態獲取,然后根據動態id在JS里循環遍歷找到單個item的dom,如下圖
PS:這里我是用“item+索引”來組成每個echart圖表的id,最終生成html結構如下:
3、在JS里采用循環方式獲取每個item的id,然后動態渲染每個圖表,如下圖:
PS:上面我標注了1,2,3步,分別意思是:
(1)、由於我這個圖表是要復用的彈窗,所以我做成了組件形式,而在進入到主頁面時候,點擊這個組件時候,DOM更新會涉及打異步更新(因為數據是動態后台獲取),而后彈出
這個錯誤,所以必須要用vue專門提供的鈎子$nextTick來處理,在這個鈎子進行echart渲染,具體可以戳這里:https://cn.vuejs.org/v2/api/#Vue-nextTick
(2): 這個是我從后台獲取的列表數組數據,需要對這個數組進行處理,然后得到每個item,然后每個item的echart初始化
(3):這是單個eachrt圖表的生成方案 其中 name的值就是每個item的id 然后實現動態渲染。
這就是每個動態多個渲染echart的方法之一,當然方法是多樣的 還有其他方法實現,歡迎大家留言。
最終成型如下:
都是測試數據 哈哈