vue中echarts視圖不更新問題及解決
vue中echarts視圖不更新
最近寫了一個可視化,遇到最多的問題就是, 封裝成組件 接口返回來 有數(shù)據(jù) , 或者切換數(shù)據(jù)有數(shù)據(jù) ,但可視化視圖不更新
問題就是數(shù)據(jù)只在第一次更新了
我解決的方法有兩個:
- v-if判斷有數(shù)據(jù)就顯示
- 用watch監(jiān)聽
1、直接在組件里判斷有數(shù)據(jù)就可
2、在組件里監(jiān)聽數(shù)據(jù)有變化 手動賦值
總結(jié)下來就是 監(jiān)聽是真香 后來遇到的很多問題都是用監(jiān)聽解決的
vue echarts視圖更新緩慢問題
項目中使用echarts畫折線圖顯示設備上傳的數(shù)據(jù)。
出現(xiàn)bug
1.做條件賽選等操作后需要請求接口從新畫圖,由于線的數(shù)量等會有變化出現(xiàn)了保留上一次畫圖的折線。
解決辦法:使用setOption試添加第二個參數(shù)為true
this.myEcharts.setOption(this.chartOption, true)
2.折線圖有畫警示線markLine,要求可以手動隱藏顯示該警示線
原本實現(xiàn)代碼:
// 警示線開關(guān) lgkeysw() { this.alarmLine = !this.alarmLine if (!this.alarmLine) { this.chartOption.series.forEach((item) => { item.markLine.label.show = false item.markLine.lineStyle.opacity = 0 }) } else { this.chartOption.series.forEach((item) => { item.markLine.label.show = true item.markLine.lineStyle.opacity = 1 }) } this.myEcharts.setOption(this.chartOption, true) },
后因數(shù)據(jù)量過大,使用setOption
將全部折線圖重繪而導致隱藏或顯示markLine
的時間變長(甚至需要十幾二十秒的時間),優(yōu)化代碼實現(xiàn)只修改需要更新的視圖,其他部分不變
// 報警線開關(guān) LGKEYSW lgkeysw(showAlarmBtn) { if (!this.alarmBtn) { return false } this.alarmLine = !showAlarmBtn let series = [] if (!this.alarmLine) { this.chartOption.series.forEach((item) => { series.push({ markLine: { label: { show: false }, lineStyle: { opacity: 0 } } }) }) } else { this.chartOption.series.forEach((item) => { series.push({ markLine: { label: { show: true }, lineStyle: { opacity: 1 } } }) }) } this.myEcharts.setOption( { series: series }, { replaceMerge: 'series' } ) },
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- 在Vue中使用Echarts+封裝
- vue+elementUI中使用Echarts之餅圖問題
- 手把手教你Vue3?按需引入?Echarts的過程(收藏)
- vue使用echarts如何實現(xiàn)雙柱狀圖和雙y軸的柱狀圖
- Vue3中按需引入ECharts詳細步驟(一看就會)
- vue3.x對echarts的二次封裝之按需加載過程詳解
- vue之使用echarts圖表setOption多次很卡問題及解決
- Vue3+echarts5踩坑以及resize方法報錯的解決
- Vue動態(tài)加載ECharts圖表數(shù)據(jù)的方式
- vue踩坑記錄之echarts動態(tài)數(shù)據(jù)刷新問題
- Vue中引入echarts的步驟及折線圖、柱狀圖常見配置項
相關(guān)文章
vue本地構(gòu)建熱更新卡頓的問題“75?advanced?module?optimization”完美解決方案
這篇文章主要介紹了vue本地構(gòu)建熱更新卡頓的問題“75?advanced?module?optimization”解決方案,每次熱更新都會卡在?"75?advanced?module?optimization"?的地方不動了,如何解決這個問題呢,下面小編給大家?guī)砹私鉀Q方案,需要的朋友可以參考下2022-08-08Vue中使用a標簽下載靜態(tài)資源文件(如excel、pdf等)純前端操作方法
這篇文章主要介紹了Vue中使用a標簽下載靜態(tài)資源文件(如excel、pdf等)純前端操作方法的相關(guān)資料,需要的朋友可以參考下2025-02-02vue-cli3.0如何使用CDN區(qū)分開發(fā)、生產(chǎn)、預發(fā)布環(huán)境
這篇文章主要介紹了vue-cli3.0如何使用CDN區(qū)分開發(fā)、生產(chǎn)、預發(fā)布環(huán)境,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11