广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >vue如何实现多图表resize事件去中心化
  • 455
分享到

vue如何实现多图表resize事件去中心化

2024-04-02 19:04:59 455人浏览 独家记忆
摘要

这篇文章主要介绍Vue如何实现多图表resize事件去中心化,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!多图表resize事件去中心化1.1 一般情况有时候我们会遇到这样的场景,一

这篇文章主要介绍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: {
 
 chartWrapperDom() {
 const dom = document.getElementById('consume-analy-chart-wrapper')
 return dom && Echarts.init(dom)
 },
 
 chartResize() {
 return _.throttle(() => this.chartWrapperDom && this.chartWrapperDom.resize(), 400)
 }
},
mounted() {
 window.addEventListener('resize', this.chartResize)
},
destroyed() {
 window.removeEventListener('resize', this.chartResize)
}

以上是“vue如何实现多图表resize事件去中心化”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网VUE频道!

--结束END--

本文标题: vue如何实现多图表resize事件去中心化

本文链接: https://www.lsjlt.com/news/95244.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue如何实现多图表resize事件去中心化
    这篇文章主要介绍vue如何实现多图表resize事件去中心化,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!多图表resize事件去中心化1.1 一般情况有时候我们会遇到这样的场景,一...
    99+
    2022-10-19
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作