vue中echarts視圖不更新問題及解決
vue中echarts視圖不更新
最近寫了一個(gè)可視化,遇到最多的問題就是, 封裝成組件 接口返回來(lái) 有數(shù)據(jù) , 或者切換數(shù)據(jù)有數(shù)據(jù) ,但可視化視圖不更新
問題就是數(shù)據(jù)只在第一次更新了
我解決的方法有兩個(gè):
- v-if判斷有數(shù)據(jù)就顯示
- 用watch監(jiān)聽
1、直接在組件里判斷有數(shù)據(jù)就可
2、在組件里監(jiān)聽數(shù)據(jù)有變化 手動(dòng)賦值
總結(jié)下來(lái)就是 監(jiān)聽是真香 后來(lái)遇到的很多問題都是用監(jiān)聽解決的
vue echarts視圖更新緩慢問題
項(xiàng)目中使用echarts畫折線圖顯示設(shè)備上傳的數(shù)據(jù)。
出現(xiàn)bug
1.做條件賽選等操作后需要請(qǐng)求接口從新畫圖,由于線的數(shù)量等會(huì)有變化出現(xiàn)了保留上一次畫圖的折線。
解決辦法:使用setOption試添加第二個(gè)參數(shù)為true
this.myEcharts.setOption(this.chartOption, true)
2.折線圖有畫警示線markLine,要求可以手動(dòng)隱藏顯示該警示線
原本實(shí)現(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
將全部折線圖重繪而導(dǎo)致隱藏或顯示markLine
的時(shí)間變長(zhǎng)(甚至需要十幾二十秒的時(shí)間),優(yōu)化代碼實(shí)現(xiàn)只修改需要更新的視圖,其他部分不變
// 報(bào)警線開關(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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 在Vue中使用Echarts+封裝
- vue+elementUI中使用Echarts之餅圖問題
- 手把手教你Vue3?按需引入?Echarts的過程(收藏)
- vue使用echarts如何實(shí)現(xiàn)雙柱狀圖和雙y軸的柱狀圖
- Vue3中按需引入ECharts詳細(xì)步驟(一看就會(huì))
- vue3.x對(duì)echarts的二次封裝之按需加載過程詳解
- vue之使用echarts圖表setOption多次很卡問題及解決
- Vue3+echarts5踩坑以及resize方法報(bào)錯(cuò)的解決
- Vue動(dòng)態(tài)加載ECharts圖表數(shù)據(jù)的方式
- vue踩坑記錄之echarts動(dòng)態(tài)數(shù)據(jù)刷新問題
- Vue中引入echarts的步驟及折線圖、柱狀圖常見配置項(xiàng)
相關(guān)文章
vue本地構(gòu)建熱更新卡頓的問題“75?advanced?module?optimization”完美解決方案
這篇文章主要介紹了vue本地構(gòu)建熱更新卡頓的問題“75?advanced?module?optimization”解決方案,每次熱更新都會(huì)卡在?"75?advanced?module?optimization"?的地方不動(dòng)了,如何解決這個(gè)問題呢,下面小編給大家?guī)?lái)了解決方案,需要的朋友可以參考下2022-08-08mpvue中使用flyjs全局?jǐn)r截的實(shí)現(xiàn)代碼
這篇文章主要介紹了mpvue中使用flyjs全局?jǐn)r截的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-09-09vue動(dòng)態(tài)組件之:is在組件中的使用場(chǎng)景
這篇文章主要介紹了vue動(dòng)態(tài)組件之:is在組件中的使用場(chǎng)景,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07教你在vue項(xiàng)目中使用svg圖標(biāo)的方法
本文給大家介紹了在vue項(xiàng)目中使用svg圖標(biāo)的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2022-04-04Vue中使用a標(biāo)簽下載靜態(tài)資源文件(如excel、pdf等)純前端操作方法
這篇文章主要介紹了Vue中使用a標(biāo)簽下載靜態(tài)資源文件(如excel、pdf等)純前端操作方法的相關(guān)資料,需要的朋友可以參考下2025-02-02vue搜索高亮popsearch組件的實(shí)現(xiàn)示例
有時(shí)候給頁(yè)面內(nèi)容添加一個(gè)關(guān)鍵詞搜索功能,如果搜索結(jié)果能夠像瀏覽器搜索一樣高亮顯示,那找起來(lái)就會(huì)很明顯體驗(yàn)會(huì)好很多,本文就來(lái)介紹一下vue搜索高亮popsearch組件的實(shí)現(xiàn)示例,感興趣的可以了解一下2023-09-09vue-cli3.0如何使用CDN區(qū)分開發(fā)、生產(chǎn)、預(yù)發(fā)布環(huán)境
這篇文章主要介紹了vue-cli3.0如何使用CDN區(qū)分開發(fā)、生產(chǎn)、預(yù)發(fā)布環(huán)境,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-11-11