中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue如何實現多圖表resize事件去中心化

發布時間:2022-03-23 10:04:08 來源:億速云 閱讀:206 作者:小新 欄目:web開發

這篇文章主要介紹vue如何實現多圖表resize事件去中心化,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

多圖表resize事件去中心化

1.1 一般情況

有時候我們會遇到這樣的場景,一個組件中有幾個圖表,在瀏覽器resize的時候我們希望圖表也進行resize,因此我們會在父容器組件中寫:

mounted() {
 setTimeout(() => window.onresize = () => {
 this.$refs.chart1.chartWrapperDom.resize()
 this.$refs.chart2.chartWrapperDom.resize()
 // ... 
 }, 200)
destroyed() { window.onresize = null }

這樣子圖表組件如果跟父容器組件不在一個頁面,子組件的狀態就被放到父組件進行管理,為了維護方便,我們自然希望子組件的事件和狀態由自己來維護,這樣在添加刪除組件的時候就不需要去父組件挨個修改

1.2 優化

這里使用了lodash的節流throttle函數,也可以自己實現,這篇文章也有節流的實現可以參考一下。 以Echarts為例,在每個圖表組件中:

computed: {
 /**
 * 圖表DOM
 */
 chartWrapperDom() {
 const dom = document.getElementById('consume-analy-chart-wrapper')
 return dom && Echarts.init(dom)
 },
 /**
 * 圖表resize節流,這里使用了lodash,也可以自己使用setTimout實現節流
 */
 chartResize() {
 return _.throttle(() => this.chartWrapperDom && this.chartWrapperDom.resize(), 400)
 }
},
mounted() {
 window.addEventListener('resize', this.chartResize)
},
destroyed() {
 window.removeEventListener('resize', this.chartResize)
}

以上是“vue如何實現多圖表resize事件去中心化”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

华安县| 乌恰县| 舟山市| 池州市| 阳高县| 武城县| 彭水| 莱阳市| 得荣县| 商丘市| 封丘县| 奉化市| 顺义区| 尚义县| 五峰| 阿勒泰市| 长葛市| 博湖县| 喀喇沁旗| 宜宾市| 福鼎市| 谢通门县| 会昌县| 静乐县| 宝鸡市| 图木舒克市| 渝北区| 渭源县| 璧山县| 克拉玛依市| 海口市| 射洪县| 十堰市| 商都县| 上蔡县| 宜丰县| 河津市| 喀喇沁旗| 汝州市| 进贤县| 怀仁县|