十年河東,十年河西,莫欺少年窮
學無止境,精益求精
代碼如下:
// 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 }) },
@天才卧龍的博客