釘釘小程序------子組件監測父組件的數據更新


把要監聽的數據放在app.js中,在子組件中使用了定時器去監聽app.js里面的數據改變,網上有很多其他人的方法,很不錯,但是我不大看得懂,自己做的這個用了定時器,可能性能就不是那么好了。。。

1.在app.js中存放數據,並且獲取父組件改變過的值。

App({
  globaldata: {
    lastRelVal: '', // 需要監聽的數據
  },
  // 實時更新的數據
  setChangeData(data){
    this.globaldata.lastRelVal = data
  }
});

2.在父組件中改變該數據。  

let app = getApp() // 引入app.js
var lastRelVal = ''
Page({
  data: {

  },
  // 頁面加載完成
  onReady() {
    this.setData()
  },
  // 改變app.js里面的值
  setData() {
    for (let i = 0; i <= 10; i++) {
      lastRelVal = i
      app.setChangeData(lastRelVal)
    }
  },
});

3.在子組件中每隔1s取app.js的值

let app = getApp()
Component({
  data: {

  },
  // 頁面加載完成
  onReady() {
    this.setData()
  },
  // 接收app.js里面的值
  didMount() {
    // 每隔1s取app.js里面的lastRelVal值
    this.interval = setInterval(() => {
      console.log("隔1s取的新值",app.globaldata.lastRelVal)
    },1000)
  },
});

 


免責聲明!

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



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