vue.js中使用echarts實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)刷新功能
vue.js中使用echarts實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)刷新功能
在vue使用echarts時(shí),可能會遇到這樣的問題,就是數(shù)據(jù)變化時(shí),echarts不更新 這是因?yàn)镋charts是數(shù)據(jù)驅(qū)動(dòng)的,這意味著只要我們重新設(shè)置數(shù)據(jù),那么圖表就會隨之重新渲染 如果想要支持?jǐn)?shù)據(jù)的自動(dòng)刷新,必然需要一個(gè)***能夠?qū)崟r(shí)監(jiān)聽到數(shù)據(jù)的變化然后告知Echarts重新設(shè)置數(shù)據(jù)。
echarts結(jié)合百度地圖怎么能實(shí)現(xiàn)動(dòng)態(tài)刷新,而不需要刷新整個(gè)頁面
ECharts開源來自百度商業(yè)前端數(shù)據(jù)可視化團(tuán)隊(duì),基于html5 Canvas,是一個(gè)純Javascript圖表庫,提供直觀,生動(dòng),可交互,可個(gè)性化定制的數(shù)據(jù)可視化圖表。創(chuàng)新的拖拽重計(jì)算、數(shù)據(jù)視圖、值域漫游等特性大大增強(qiáng)了用戶體驗(yàn),賦予了用戶對數(shù)據(jù)進(jìn)行挖掘、整合的能力。
ECharts (Enterprise Charts 商業(yè)產(chǎn)品圖表庫)提供商業(yè)產(chǎn)品常用圖表,底層基于ZRender(一個(gè)全新的輕量級canvas類庫),創(chuàng)建了坐標(biāo)系,圖例,提示,工具箱等基礎(chǔ)組件,并在此上構(gòu)建出折線圖(區(qū)域圖)、柱狀圖(條狀圖)、散點(diǎn)圖(氣泡圖)、餅圖(環(huán)形圖)、K線圖、地圖、力導(dǎo)向布局圖以及**圖,同時(shí)支持任意維度的堆積和多圖表混合展現(xiàn)。
如何實(shí)現(xiàn)echarts每隔5秒更新一次數(shù)據(jù)
可以用 addData啟用動(dòng)態(tài)數(shù)據(jù)接口。可以參考:http://echarts.baidu.com/echarts2/doc/example/dataZoom.htmldata里面加載你自己的查詢數(shù)據(jù)的Function就OK了。
[Echarts]React項(xiàng)目中無法刷新數(shù)據(jù)
在react新項(xiàng)目中 使用react-for-echarts中導(dǎo)出的ReactCharts組件,默認(rèn)通過option的series選項(xiàng)更新數(shù)據(jù)參數(shù),但是發(fā)現(xiàn)組件沒有觸發(fā)重繪?? 通過暴力設(shè)置key值強(qiáng)制該組件卸載刷新,缺點(diǎn)是可能存在性能損耗 每個(gè)echarts圖表都有一個(gè)實(shí)例instance,可以借助getEchartsInstance()函數(shù)獲取到,實(shí)例中的setOption支持更新數(shù)據(jù)。
vue中用echarts 動(dòng)態(tài)刷新數(shù)據(jù)沒變化解決
?<v-chart :options=\”options\” :auto-resize=\”true\” style=\”height: 500px; width: ****;\”>export default { // 父組件傳遞過來的數(shù)據(jù) (兩種方式聲明:1.數(shù)組 2.對象) props: { titleText: { type:String, default: () => { return \’2019 前三季度達(dá)標(biāo)率統(tǒng)計(jì)\’ } }, // 圖表名稱 isPercentage: { type:Boolean }, // 是否是% xAxisData: { type:Array, default: () => { return [\’蘭州市\(zhòng)’, \’嘉峪關(guān)市\(zhòng)’, \’金昌市\(zhòng)’, \’白銀市\(zhòng)’, \’天水市\(zhòng)’, \’威武市\(zhòng)’, \’慶陽市\(zhòng)’] } }, seriesData: { type:Array, default: () => { return [100, 100, 17, 100, 100, 100, 17] } } }, // 數(shù)據(jù) data() { return { title:\’\’, options: {} } }, // 要用到哪些子組件 components: {}, // 計(jì)算屬性 computed: {}, // 監(jiān)聽 watch: { seriesData: { handler(newName, oldName) { if (oldName) { this.setOptions() } }, immediate:true, deep:true } }, // 生命周期鉤子:實(shí)例初始化之后,數(shù)據(jù)觀測(data observer) 和 event/watcher 事件配置之前被調(diào)用 created() { }, // 生命周期鉤子:組件實(shí)例渲染完成時(shí)調(diào)用 mounted() { this.setOptions() }, // 函數(shù)集, methods: { setOptions() { this.options = { title: { text:this.titleText, left:\’center\’ }, color:this.$config.chartsColor, tooltip: { trigger:\’axis\’, axisPointer: {// 坐標(biāo)軸指示器,坐標(biāo)軸觸發(fā)有效 type:\’shadow\’ // 默認(rèn)為直線,可選為:\’line\’ | \’shadow\’ } }百科, grid: { left:\’3%\’, right:\’4%\’, bottom:\’3%\’, containLabel:true }, xAxis: [ { type:\’category\’, data:this.xAxisData, axisTick: { alignWithLabel:true } } ], yAxis: [ { type:\’value\’, axisLabel: { formatter:this.isPercentage ?\'{value} %\’ :\'{value}\’ } } ], series: [ { name:\’直接訪問\’, type:\’bar\’, barWidth:\’38%\’, data:this.seriesData, label: { show:true, position:\’inside\’, formatter: (params) => { return `${params.value}%` } } } ] } } } }主要在watch中監(jiān)聽事件,發(fā)生變化時(shí),setOptions