最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 关于echarts渲染完成事件finished/rendered

    正文概述 掘金(fangzhou_lu)   2021-03-12   2388

    背景

    • 需要自适应大小
    • 需要loading加载。
    • 效果如下

    关于echarts渲染完成事件finished/rendered

    echarts加载完成事件API

    1、events. rendered

    • 官方介绍

    2、events. finished

    执行

    • 在vue中

    template

    <div class="p-line-charts-out">
        <div v-show="!isLoading"  class="p-line-charts" ref="lineCharts"></div> <!--图表dom对象-->
        <dv-loading v-show="isLoading">Loading...</dv-loading> <!--loading组件-->
    </div>
    

    javascript

    //渲染前
    this.isLoading = true
    
    this.chart = this.$echarts.init(this.$refs.lineCharts)
    //渲染后
    this.chart.on('finished',_=>{
            this.isLoading = true
            console.log(113, 'finished')
    })
    
    

    scss

    <style lang="scss" scoped>
    .p-line-charts-out{
      height: 100%;
      width: 100%;
      .p-line-charts {
        width: 100%!important;
        height: calc(100% - 25px)!important;
      }
    }
    </style>
    
    • 但是finished事件有个问题,就是悬浮,点击事件也会触发钩子函数

    关于echarts渲染完成事件finished/rendered

    解决方法-1

      const option = {...} //charts配置项
    
      let isFinished = false //标记 isFinished
      
      this.chart.on('finished',_=>{
        if(!isFinished){
          console.log('我只执行一次')
          isFinished = true
          this.isLoading = false //关闭loading
          this.chart.resize() //重新渲染charts大小
        }
        console.log(113, 'finished')
      })
      
      this.chart.setOption(option)
    

    解决方法-2

          const chartsPromise = new Promise(resolve => {
            const option = {...} //echarts配置
    
            this.chart = this.$echarts.init(this.$refs.lineCharts)
    
            this.chart.on('finished',_=>{ 
              resolve() //把执行结果抛出去
            })
    
            this.chart.setOption(option)
          })
          
          //promise resolve
          chartsPromise.then(_=>{
            this.isLoading = false//Loading标识关闭
            setTimeout(_=>{
              this.chart.resize() //宏任务队列中切换echarts大小
            })
            console.log('渲染完成promise')
          })
          
    

    起源地下载网 » 关于echarts渲染完成事件finished/rendered

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元