這篇文章主要介紹vue如何實(shí)現(xiàn)多圖表resize事件去中心化,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
10年積累的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有臨沂免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
多圖表resize事件去中心化
1.1 一般情況
有時(shí)候我們會(huì)遇到這樣的場(chǎng)景,一個(gè)組件中有幾個(gè)圖表,在瀏覽器resize的時(shí)候我們希望圖表也進(jìn)行resize,因此我們會(huì)在父容器組件中寫:
mounted() { setTimeout(() => window.onresize = () => { this.$refs.chart1.chartWrapperDom.resize() this.$refs.chart2.chartWrapperDom.resize() // ... }, 200) destroyed() { window.onresize = null }
這樣子圖表組件如果跟父容器組件不在一個(gè)頁(yè)面,子組件的狀態(tài)就被放到父組件進(jìn)行管理,為了維護(hù)方便,我們自然希望子組件的事件和狀態(tài)由自己來(lái)維護(hù),這樣在添加刪除組件的時(shí)候就不需要去父組件挨個(gè)修改
1.2 優(yōu)化
這里使用了lodash的節(jié)流throttle函數(shù),也可以自己實(shí)現(xiàn),這篇文章也有節(jié)流的實(shí)現(xiàn)可以參考一下。 以Echarts為例,在每個(gè)圖表組件中:
computed: { /** * 圖表DOM */ chartWrapperDom() { const dom = document.getElementById('consume-analy-chart-wrapper') return dom && Echarts.init(dom) }, /** * 圖表resize節(jié)流,這里使用了lodash,也可以自己使用setTimout實(shí)現(xiàn)節(jié)流 */ chartResize() { return _.throttle(() => this.chartWrapperDom && this.chartWrapperDom.resize(), 400) } }, mounted() { window.addEventListener('resize', this.chartResize) }, destroyed() { window.removeEventListener('resize', this.chartResize) }
以上是“vue如何實(shí)現(xiàn)多圖表resize事件去中心化”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享標(biāo)題:vue如何實(shí)現(xiàn)多圖表resize事件去中心化
文章分享:http://www.rwnh.cn/article18/jieodp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、App開發(fā)、移動(dòng)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、商城網(wǎng)站、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)