收藏
回答

页面中怎么判断所有组件渲染完

一个页面有几个自己写的倒计时组件,不断同时setData造成性能比较差,有的倒计时倒着倒着就不动了。我想通过所有组件在页面加载完后,在页面开始统一进行倒计时,我想知道在页面中怎么获取页面是否加载完,类似于vue中的mounted钩子函数

最后一次编辑于  2018-12-12  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

5 个回答

  • small & significant
    small & significant
    2018-12-12

    如果只是渲染的话用promise呗

    2018-12-12
    赞同 1
    回复
  • 〆小偏執゛
    〆小偏執゛
    2018-12-21

    请问楼主你的倒计时在页面滑动时,倒计时会停止不动,然后突然快跳几秒吗

    2018-12-21
    赞同
    回复
  • Evis
    Evis
    2018-12-12

    我理解错了,我通过接口判断了组件是否加载,接口是异步,这样的话onready比组件先加载没有毛病。在接口返回数据时加个settimeout或promise异步就可以在所有组件加载完后执行逻辑倒计时

    2018-12-12
    赞同
    回复
  • 半寸灰
    半寸灰
    2018-12-12

    在组件中使用

    在 page中添加一个方法  componentCreated



    在组件  created方法中使用

    var   pages= getCurrentPages();

    //获取当前page

    var page=pages[pages.length-1];

    page.componentCreated()


    这样在componentCreated方法不就知道组件是否创建了


    2018-12-12
    赞同
    回复 1
    • Evis
      Evis
      2018-12-12

      那一个页面动态渲染出多个组件呢,你这样只能判断一个,多个不好操作,所以还是想找一个类似vue中的mounted的钩子函数,本来觉得onready是可以的,没想到比组件的created还先加载,真是郁闷呀

      2018-12-12
      回复
  • philly
    philly
    2018-12-12

    onReady

    2018-12-12
    赞同
    回复 4
    • Evis
      Evis
      2018-12-12

      onReady不行,我试了,我在页面onready打印要比组件里的created先打印出来。  onready是首次渲染完,感觉不包含组件。。。

      2018-12-12
      回复
    • philly
      philly
      2018-12-12回复Evis

      那你就在组件里面执行就行啊,组件的事情组件做

      2018-12-12
      回复
    • Evis
      Evis
      2018-12-12回复philly

      你没明白我的意思,我知道组件的事自己做,倒计时多个组件同时setdata,这样性能很差,我想页面统一setdata

      2018-12-12
      回复
    • null
      null
      2018-12-12回复Evis

      页面加一个加载进度条,轮循去一个一个判断有没有加载完,加载完就显示页面,开启你所有组件得倒计时。行不行呢

      2018-12-12
      回复