微信小程序定時執行及清除定時器 及 this.setData({}) 設置對象內屬性


十年河東,十年河西,莫欺少年窮

學無止境,精益求精

代碼如下:

// pages/setIntervals/setIntervals.js
Page({

  /**
   * 頁面的初始數據
   */
  data: {
    Numbers: 0,
    NumbersTimeOut: 0,
    Interval: null,
    timeOut: null
  },

  /**
   * 生命周期函數--監聽頁面加載
   */
  onLoad: function (options) {
    this.getdata2();
  },

  ///重復執行
  getdata() {
    let that = this;
    that.data.Interval = setInterval(() => {
      that.setData({
        Numbers: ++that.data.Numbers
      })
      console.log(that.data.Numbers)
    }, 1000);
  },

  ///執行一次 方法體內用了遞歸,清除的時候,有可能又被重新賦值--不建議使用遞歸調用 有可能清除不掉
  getdata2() {
    let that = this;
     that.data.timeOut = setTimeout(() => {
      that.setData({
        NumbersTimeOut: ++that.data.NumbersTimeOut
      })
      console.log(that.data.NumbersTimeOut)
      this.getdata2();
    }, 1000);
  },
  /**
   * 生命周期函數--監聽頁面隱藏
   */
  onHide: function () {
    let that = this
    clearInterval(that.data.Interval);
    clearTimeout(that.data.timeOut);
  },

  /**
   * 生命周期函數--監聽頁面卸載
   */
  onUnload: function () {
    let that = this
     clearInterval(that.data.Interval);
     clearTimeout(that.data.timeOut);
  },
})

詳情參考:https://developers.weixin.qq.com/miniprogram/dev/reference/api/setTimeout.html

設置對象內屬性:

 

  data: {
    Numbers: 0,
    NumbersTimeOut: 0,
    Interval: null,
    timeOut: null,
    txt:{
      v1:'1',
      v2:'2'
    }
  },

  bindinput(e) {
    let {v1,v2}=this.data.txt;
    this.setData({
      'txt.v1':e.detail.value
    })
  },

 

@天才卧龍的博客

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM