文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

这篇文章主要介绍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事件去中心化”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯